/* 18.2.2006, 4:26
* TableSelect.java
*/
import java.awt.*;
import java.util.*;
import javax.swing.*;
import javax.swing.table.*;
public class TableSelect extends JFrame {
public TableSelect() {
super("DEMO: Die Selektion der JTable wird beibehalten " +
"wenn sich die Daten der JTable verändern");
initComponents();
table.setValueAt("SCHAU",3,2);
table.changeSelection(2,0,false,false);
table.changeSelection(3,2,false,true);
model = (DefaultTableModel)table.getModel();
new Thread(new Runnable() {
public void run() {
message();
for (int i = 0; i < 100; i++) {
model.addRow(new Object[]{"hallo "+i});
try { Thread.sleep(500);} catch (InterruptedException ex) {}
table.setValueAt("test_"+i,3,2);
table.setValueAt("TEST_"+i,1,1);
table.setValueAt("HALLO_"+i,2,1);
}
table.setValueAt("Die Selektion ist noch da!",3,2);
message();
JOptionPane.showMessageDialog(null,"<html>Bravo! <font color=blue>Sie haben " +
"<font color=green>eine farbige <font color=red>" +
"Waschmaschine <font color=purple>gewonnen!
<font color=gray>" +
"(kleiner Scherz)");
}
}).start();
}
private void initComponents() {
table = new JTable();
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
table.setModel(new DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
getContentPane().add(new JScrollPane(table), BorderLayout.CENTER);
setSize(700,400);
setLocationRelativeTo(null);
}
private void message(){
JOptionPane.showMessageDialog(null, "<html>>>> Die Selektion wird bei " +
"Daten-Änderungen beibehalten. <<<
<font color=blue>Selected rows: "
+Arrays.toString(table.getSelectedRows()));
}
public static void main(String args[]) { new TableSelect().setVisible(true); }
private DefaultTableModel model ;
private JTable table;
}