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

Recommended Answers

All 2 Replies

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.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.