Witam
Do załączonego kodu chcę dodać jeszcze obsługę wyjątku żeby wyświetlał coś w stylu brak wiersza do usunięcie (ArrayIndexOutOfBoundsException) Co powinno być po otwarciu bloku try{.. jak zapisać że wartość tablicy = 0? I czy w dobrym miejscu wrzucilem obsługę wyjatku?(zaznaczone na czerwono
Pozdrawiam
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.table.DefaultTableModel;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class TableDemo extends JPanel {
public TableDemo() {
super(new GridLayout(1, 0));
String[] columnNames = { "Imię", "Nazwisko","Pensja" };
Object[][] data = { };
final DefaultTableModel tab = new DefaultTableModel(data, columnNames);
final JTable table = new JTable(tab);
table.setPreferredScrollableViewportSize(new Dimension(500, 70));
table.setFillsViewportHeight(true);
JScrollPane scrollPane = new JScrollPane(table);
add(scrollPane);
JButton mb = new JButton("Dodaj");
mb.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
Object[] dd = { JOptionPane.showInputDialog( null,"Podaj imię"), JOptionPane.showInputDialog(null, "Podaj nazwisko"),
JOptionPane.showInputDialog(null, "Podaj pensję"), };
tab.addRow(dd);
}
});
mb.setPreferredSize(new Dimension(20, 5));
add(mb, BorderLayout.SOUTH);
JButton mc = new JButton("Usuń");
mc.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tab.removeRow(table.getSelectedRow());
}
});
mc.setPreferredSize(new Dimension(80, 20));
add(mc, BorderLayout.NORTH);
try{
}
catch(ArrayIndexOutOfBoundsException e){
System.out.println("brak wierszy");
}
}
// GUI
private static void createAndShowGUI() {
JFrame frame = new JFrame("TableDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
TableDemo newContentPane = new TableDemo();
newContentPane.setOpaque(true);
frame.setContentPane(newContentPane);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}