L
Louis2
Gast
Also irgendwie kriege ich es mit dem Tutorium nicht so richtig hin.
Ich habe eine JTable und ein DefaultTableModel. Ausserdem ein JTextField. Dort gebe ich was ein, hole mir zur Laufzeit aus der DB Sätze die mit dem Wert der eingegeben wurde verknüpft sind. Diese Sätze werden dann in der JTable (bzw. im DefaultTableModel) angezeigt. Soweit alles gut. Nun möchte ich die Zellen färben wo der Wert mit dem eingegebene Wert des JTextFields übereinstimmt. Dazu benutze ich die Klasse ColorTableCellRenderer. Dort habe ich auch eine Farbe definiert und ausgegeben. Aber irgendwie funzt es nicht und ausserdem habe ich nie was mit CellRenderer gemacht habe (was eigentlich keine Ausrede sein sollte
). Was muss ich noch implementieren wo liegt der Fehler?
Definiere JTable Klasse
Werte werden aus Hasttable gelesen und in JTable eingefügt
Ich habe eine JTable und ein DefaultTableModel. Ausserdem ein JTextField. Dort gebe ich was ein, hole mir zur Laufzeit aus der DB Sätze die mit dem Wert der eingegeben wurde verknüpft sind. Diese Sätze werden dann in der JTable (bzw. im DefaultTableModel) angezeigt. Soweit alles gut. Nun möchte ich die Zellen färben wo der Wert mit dem eingegebene Wert des JTextFields übereinstimmt. Dazu benutze ich die Klasse ColorTableCellRenderer. Dort habe ich auch eine Farbe definiert und ausgegeben. Aber irgendwie funzt es nicht und ausserdem habe ich nie was mit CellRenderer gemacht habe (was eigentlich keine Ausrede sein sollte
Definiere JTable Klasse
Code:
public class Frame extends JFrame {
.
JTable(model);
.
String[] title = new String[] {
displayValue(Anmeldung.choice, "CustomerNo"), displayValue(Anmeldung.choice, "Table_Companyname")
};
model = new DefaultTableModel (title,0) {
boolean[] canEdit = new boolean [] {false, false, false, false, false, false};
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit [columnIndex];
}
};
JTable.setDefaultRenderer(Object.class, new ColoredTableCellRenderer());
// Bin mir nicht sicher wo ich das reinpacken soll, bei der Ausgabe (siehe Code-Abschnitt 2)??
}
Werte werden aus Hasttable gelesen und in JTable eingefügt
Code:
public class HashTable_return {
.
static void write_JTable() { //Ausgabe in JTable was ja hier für meine Frage interessant ist
listSize = lists.size();
leng = ((ArrayList)lists.get(0)).size();
for (int n=0;n<leng;n++)
{
Frame.model.addRow(new String[spalten]);
for (int m=0;m<spalten;m++)
{
String listresult = (String) ((ArrayList)lists.get(m)).get(n);
Frame.model.setValueAt(listresult, i, m);
}
}
lists.clear();
}
static class ColorTableCellRenderer extends DefaultTableCellRenderer{
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
super.getTableCellRendererComponent(table, value, isSelected,
hasFocus, row, column);
Color farbe = Color.YELLOW;
setBackground(farbe);
return this; // Die Zelle an Pos (i, m) sollte mit Gelb markiert werden
}
}
}