JTable værdier udskrives 2 gange
kør dette program og værdien udskrives 2 gange i stedet for 1 (som det er meningen!)er der nogen der kan overskue det .....
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.table.*;
public class SelectTableExample extends JFrame {
private JPanel topPanel;
private JTable table;
private JScrollPane scrollPane;
public SelectTableExample() {
setTitle( "ListSelectionListener eksempel" );
setSize( 300, 200 );
setBackground( Color.gray );
topPanel = new JPanel();
topPanel.setLayout( new BorderLayout() );
getContentPane().add( topPanel );
String columnNames[] = { "Column 1", "Column 2", "Column 3" };
String dataValues[][] =
{
{ "12", "333", "1337" },
{ "4711", "42", "853" },
{ "93", "89.2", "109" },
{ "279", "9033", "3092" }
};
table = new JTable( dataValues, columnNames );
// Dette er det essentielle:
ListSelectionModel selectionModel = table.getSelectionModel();
selectionModel.addListSelectionListener( new ListSelectionListener() {
/* Metoden definerer hvad vi gør når tabellen vælges
* du skal definere denne metode, da du implementerer ListSelectionListener
*/
public void valueChanged( ListSelectionEvent event ) {
if( event.getSource() == table.getSelectionModel() && event.getFirstIndex() >= 0 ) {
TableModel model = (TableModel)table.getModel();
// Hvad er der klikket på?
String string = (String)model.getValueAt(
table.getSelectedRow(),
table.getSelectedColumn() );
System.out.println( "Valgt: = " + string );
}
}
});
scrollPane = new JScrollPane( table );
topPanel.add( scrollPane, BorderLayout.CENTER );
}
}
class Test {
public static void main( String args[] ) {
SelectTableExample mainFrame = new SelectTableExample();
mainFrame.setVisible( true );
}
}
