Usuwanie zaznaczonego wiersza z JTable

0

Mam taki kod:

import java.awt.BorderLayout;
import java.awt.Dimension;
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.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;


public class JT extends JFrame implements ActionListener {
	
	JTextField tImie, tNazwisko, tUlica, tNr, tMiasto, tKod, tMail, tRok, tTel;
	JButton bDodaj, bUsun, bZapisz, bWczytaj, bZamknij;
	JTable tab;
	DefaultTableModel tm;

	public JT()
	{
		super("Książka telefoniczna");
		
		String [] cols = {"Imię", "Nazwisko", "Ulica", "Nr domu", "Miasto", "Kod pocztowy", "E-mail", "Data urodzenia", "Telefon"};
		
		tm = new DefaultTableModel();
		tab = new JTable(tm);
		
		for (int i = 0; i < cols.length; i++)
			tm.addColumn(cols[i]);
		
		tab.setPreferredScrollableViewportSize(new Dimension(1000, 100));
		JScrollPane pane = new JScrollPane(tab);
		add(pane, BorderLayout.NORTH);
		
		tImie = new JTextField(15);
		tNazwisko = new JTextField(15);
		tUlica = new JTextField(15);
		tNr = new JTextField(15);
		tMiasto = new JTextField(15);
		tKod = new JTextField(15);
		tMail = new JTextField(15);
		tRok = new JTextField(15);
		tTel = new JTextField(15);

		bDodaj = new JButton("Dodaj");
		bDodaj.addActionListener(this);
		bUsun = new JButton("Usuń");
		bUsun.addActionListener(this);
		bZapisz = new JButton("Zapisz do pliku");
		bZapisz.addActionListener(this);
		bWczytaj = new JButton("Odczytaj z pliku");
		bWczytaj.addActionListener(this);
		bZamknij = new JButton("Zamknij");
		bZamknij.addActionListener(this);
		
		JPanel p = new JPanel();
		p.setLayout(new GridLayout(9, 2));
		p.add(new JLabel("Imię:"));
		p.add(tImie);
		p.add(new JLabel("Nazwisko:"));
		p.add(tNazwisko);
		p.add(new JLabel("Ulica:"));
		p.add(tUlica);
		p.add(new JLabel("Nr domu:"));
		p.add(tNr);
		p.add(new JLabel("Miasto:"));
		p.add(tMiasto);
		p.add(new JLabel("Kod pocztowy:"));
		p.add(tKod);
		p.add(new JLabel("E-mail:"));
		p.add(tMail);
		p.add(new JLabel("Data urodzenia:"));
		p.add(tRok);
		p.add(new JLabel("Telefon:"));
		p.add(tTel);
		
		add(p, BorderLayout.CENTER);
		
		JPanel p2 = new JPanel();
		p2.setLayout(new FlowLayout());
		p2.add(bDodaj);
		p2.add(bUsun);
		p2.add(bZapisz);
		p2.add(bWczytaj);
		p2.add(bZamknij);
		
		add(p2, BorderLayout.SOUTH);
		
		
		
		pack();
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		setVisible(true);
	}

	public void actionPerformed(ActionEvent ae)
	{
		String str = ae.getActionCommand();
		
		if (str.equals("Dodaj"))
		{
			Object linijka[] = new Object[9];
			linijka[0] = tImie.getText(); 
			linijka[1] = tNazwisko.getText(); 
			linijka[2] = tUlica.getText(); 
			linijka[3] = tNr.getText(); 
			linijka[4] = tMiasto.getText(); 
			linijka[5] = tKod.getText(); 
			linijka[6] = tMail.getText(); 
			linijka[7] = tRok.getText(); 
			linijka[8] = tTel.getText();
			
			tm.addRow(linijka);	
		}
		
		else if (str.equals("Unuń"))
		{
			tm.removeRow(tab.getSelectedRow());
		}
		
	}
	public static void main(String[] args) 
	{
		new JT();
	}
}

Jednak nie działa mi kasowanie wierszy. Jak to zrobić?

0

"Unuń" to co innego niż "Usuń".

1 użytkowników online, w tym zalogowanych: 0, gości: 1