Hallo!
In meinem Tabellenmodell soll bei einem Update dieses gleich mitprotokolliert werden und daraus gleich ein SQL Befehl erstellt werden. Dieser wird dann in eine Arraylist gepackt. Nun habe ich eine einfache get-Methode in das tabellenModel gepackt um die Liste auszulesen. Diese Liste soll nun per Button einfach zu testzwecken auf der Konsole ausgeben werden. Da gibt es die Schwierigkeiten
Tabellenmodell:
Main:
In der Main kann ich nicht auf die Methode getSqlList() zugreifen. Das hat wohl etwas mit der inneren Klasse zu tun. Die Lösungsmöglichkeit fehlt mir aber.
Danke für den Hinweis.
Gruß
In meinem Tabellenmodell soll bei einem Update dieses gleich mitprotokolliert werden und daraus gleich ein SQL Befehl erstellt werden. Dieser wird dann in eine Arraylist gepackt. Nun habe ich eine einfache get-Methode in das tabellenModel gepackt um die Liste auszulesen. Diese Liste soll nun per Button einfach zu testzwecken auf der Konsole ausgeben werden. Da gibt es die Schwierigkeiten
Tabellenmodell:
Java:
TableModelEvent event = new TableModelEvent(
this, rowIndex, rowIndex, columnIndex, TableModelEvent.UPDATE );
for( TableModelListener listener : listeners )
listener.tableChanged( event );
if(event.getColumn()==0) {
System.out.println("Name");
System.out.println(bottle.getName());
sqlList.add("INSERT INTO `bottle` WHERE ID=1 `Name`="+bottle.getName());//
}
if(event.getColumn()==1) {
System.out.println("Grösse");
System.out.println(bottle.getSize());
sqlList.add("INSERT INTO `bottle` WHERE ID=1 `Brösse`="+bottle.getSize());
}
}
public ArrayList getSqlList() {
return sqlList;
}
Java:
public class JTableDemo {
public static void main( String[] args ){
// Ein neues Model erzeugen
BottleModel model = new BottleModel();
// Das Model mit Daten füllen
model.addBottle( new Bottle( "Whiskey", 3, true ));
model.addBottle( new Bottle( "Mineral", 10, false ));
model.addBottle( new Bottle( "Bier", 5, false ));
model.addBottle( new Bottle( "Sirup", 7, true ));
model.addBottle( new Bottle( "Kaffee", 1, true ));
// Das JTable initialisieren
JTable table = new JTable( model );
JButton jsql = new JButton("SQL");
jsql.addActionListener(new java.awt.event.ActionListener(){
public void actionPerformed(ActionEvent e) {
for(int i = 0; i < model.getSqlList().size(); ++i) {//Fehler
System.out.println(model.getSqlList().get(i));
}
}
}
);
JFrame frame = new JFrame( "Demo" );
frame.getContentPane().add( new JScrollPane( table ) );
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
frame.pack();
frame.setVisible( true );
}
}
Danke für den Hinweis.
Gruß