0

Hello I'm new to Java so all help appreciated

I have already searched for similar threads but with no results helping me

I want to make the text in JTextField to search for the data in the JTable and highlight it.

Here is my customer class:

public class Kund {
    private String fNamn;
    private String efterNamn;
    private String email;
    private String adress;
    private String telefon;
    private String kundnr;
    
    public String getfNamn() {
        return fNamn;
    }
    public void setfNamn(String fNamn) {
        this.fNamn = fNamn;
    }
    public String getEfterNamn() {
        return efterNamn;
    }
    public void setEfterNamn(String efterNamn) {
        this.efterNamn = efterNamn;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public String getAdress() {
        return adress;
    }
    public void setAdress(String adress) {
        this.adress = adress;
    }
    public String getTelefon() {
        return telefon;
    }
    public void setTelefon(String telefon) {
        this.telefon = telefon;
    }
	public String getKundnr() {
		return kundnr;
	}
	public void setKundnr(String kundnr) {
		this.kundnr = kundnr;
		
	}
}

Here is my registration class:

import java.util.ArrayList;
import java.util.List;

import javax.swing.table.AbstractTableModel;

public class KundRegister extends AbstractTableModel {

	/*
	 * vi definierar index nummerna för kolumnerna in tablet
	 * för att kunna returna rätt värde i getValue() metoden
	 * och uppdatera rätt värde i setValue() metoden
	 */
	private static final int COLUMN_FOR_NAMN     = 0;
	private static final int COLUMN_EFTER_NAMN     = 1;
	private static final int COLUMN_KUND_NR		=2;
	private static final int COLUMN_EMAIL        = 3;
	private static final int COLUMN_ADRESS     = 4;
	private static final int COLUMN_TELEFON     = 5;

	//Listan innehåller kunds objekts
	private List<Kund> listkunds;

	//Namnet för kolumnheadern i tablet
	private String[] columnNames;

	//Skapar ny instans av modellen
	public KundRegister() {
		// initierar kund list
		this.listkunds = new ArrayList<Kund>();
		// definierar kolumnnamn
		columnNames = new String[] {"Förnamn", "Efternamn","Kundnummer",
				"Email", "Adress", "Telefon"};
	}
	//returnerar antalet kolumner i tablet
	public int getColumnCount() {
		return columnNames.length;
	}
	//returnerar namnet av en specifik kolumn i tablet
	public String getColumnName(int column) {
		return columnNames[column];
	}   
	//returnerar antalet rader i tablet
	public int getRowCount() {
		return listkunds.size();
	}

	/*
	 * Denna metod kommer att användas av tablet komponenten för att hämta 
	 * värde av en given cell vid [row, column]
	 */ 
	public Object getValueAt(int rowIndex, int columnIndex) {
		Object value = null;

		Kund kund = listkunds.get(rowIndex);

		switch (columnIndex) {
		case COLUMN_FOR_NAMN:
			value = kund.getfNamn();
			break;
		case COLUMN_EFTER_NAMN:
			value = kund.getEfterNamn();
			break;
		case COLUMN_EMAIL:
			value = kund.getEmail();
			break;
		case COLUMN_ADRESS:
			value = kund.getAdress();
			break;
		case COLUMN_TELEFON:
			value = kund.getTelefon();
			break;
		case COLUMN_KUND_NR:
			value = kund.getKundnr();
		}

		return value;
	}

	/*
	 * Denna metod kommer att användas av tablet komponenten när 
	 * användaren redigerar en given cell vid [row, column] 
	 * Motsvarande Kund objektet kommer att uppdateras
	 */
	public void setValueAt(Object value, int rowIndex, int columnIndex) {
		Kund kund = listkunds.get(rowIndex);

		switch (columnIndex) {
		case COLUMN_FOR_NAMN:
			kund.setfNamn(value.toString());
			break;
		case COLUMN_EFTER_NAMN:
			kund.setEfterNamn(value.toString());
			break;
		case COLUMN_KUND_NR:
			kund.setKundnr(value.toString());
			break;
		case COLUMN_EMAIL:
			kund.setEmail(value.toString());
			break;
		case COLUMN_ADRESS:
			kund.setAdress(value.toString());
			break;
		case COLUMN_TELEFON:
			kund.setTelefon(value.toString());
			break;
		}       
	}
	//Eftersom varje cell i tablet kan ändras, returnerar vi alltid värdet "true"
	public boolean isCellEditable(int rowIndex, int columnIndex) {
		return true;
	}   
	/*Denna metod tillåter programmet att lägga till en tom kund 
	 * En ny rad kommer att bifogas i tablet
	 */
	public void nyKund(Kund akund) {
		this.listkunds.add(akund);
	}

	/*
	 * Denna metod tillåter programmet att ta bort den valda raden i tablet, 
	 * motsvarande Kundobjekt i Kund listan tas också bort.
	 */
	public void tabortKund(int rowIndex) {
		this.listkunds.remove(rowIndex);
	}
}

and here is my Gui class:

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;

public class KundGUI extends JFrame {

	private JTable tableContact = new JTable();
	private KundRegister contactModel = new KundRegister();
	private JButton buttonNy = new JButton("Ny kund");
	private JButton buttonTabort = new JButton("Ta bort kund");
	private JButton buttonSok = new JButton("Sök");
	private JButton buttonAvbryta = new JButton("Avbryt");
	private JButton buttonSpara = new JButton("Spara");
	private JTextField textField = new JTextField("Sök..");


	public KundGUI() {
		super("Kundhantering");
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		setLayout(new BorderLayout());

		tableContact.setModel(contactModel);

		getContentPane().add(new JScrollPane(tableContact), BorderLayout.CENTER);

		buttonNy.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent event) {
				laggtillKund();
			}
		});

		buttonTabort.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent event) {
				tabortKund();
			}
		});

		textField.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent event){
				sökKund();
			}
		});

		buttonAvbryta.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent event){
				AvbrytaProgram();
			}
		});

		buttonSpara.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent event){
				sparaProgram();
			}
		});
		//Panelen längst ner
		JPanel panelButton = new JPanel();
		panelButton.setLayout(new FlowLayout());
		panelButton.add(buttonNy);
		panelButton.add(buttonTabort);
		panelButton.add(buttonSok);
		panelButton.add(buttonAvbryta);
		panelButton.add(buttonSpara);

		//Panelen längst upp
		JPanel panelText = new JPanel();
		panelText.setLayout(new GridLayout());
		panelText.add(textField);

		buttonNy.setToolTipText("Klicka här för att lägga till ny kund");
		buttonTabort.setToolTipText("Klicka här för att ta bort markerad kund");
		buttonAvbryta.setToolTipText("Klicka här för att Avbryta programmet");
		buttonSok.setToolTipText("Klicka här för att söka på en kund");
		buttonSpara.setToolTipText("Klicka för för att spara");

		//Positionen av panelerna
		getContentPane().add(panelButton, BorderLayout.PAGE_END);
		getContentPane().add(panelText, BorderLayout.PAGE_START);

		pack();

		setLocationRelativeTo(null);
		setVisible(true);
	}
	//Metoderna som är kopplade till knapparna
	private void laggtillKund() {
		contactModel.nyKund(new Kund());
		contactModel.fireTableDataChanged();
	}

	private void tabortKund() {
		int rowIndex = tableContact.getSelectedRow();
		int x = JOptionPane.showConfirmDialog(null, "Är du säker att du vill ta bort kunden?", "Borttagning av kund", JOptionPane.INFORMATION_MESSAGE);
		if (rowIndex >= 0 && x ==0) {
			contactModel.tabortKund(rowIndex);
			contactModel.fireTableDataChanged();
		}
	}

	private void sökKund(){
		
		
	}

	private void sparaProgram(){

		dispose();
	}

	private void AvbrytaProgram() {
		int x = JOptionPane.showConfirmDialog(null, "Är du säker att du vill avbryta?", "Stäng ner kundhantering", JOptionPane.INFORMATION_MESSAGE);

		if(x==0)
			dispose();
	}
}

Best regards
John

2
Contributors
2
Replies
3
Views
5 Years
Discussion Span
Last Post by kinesaren
0

Thanks for your answer.

I'm new to Java so it's kinda hard. It would help ALOT if you could just show me what to input and where to input because I have already tried in like 6 hours now.

This article has been dead for over six months. Start a new discussion instead.
Be sure to adhere to our posting rules.