Hi Leute,
ich arbeite gerade an einem kleinen Projekt, in dem Aufträge mit ihren Statien dargestellt werden sollen. Das ganze soll in einer JTable angezeigt werden! Das hat bisher alles auch geklappt. Jetzt möchte ich den Status durch ein kleines Icon darstellen. Mit JTable habe ich noch nicht so die großen Erfahrungen, aber dass ich den DefaultTableRenderer überschreiben muss habe ich auch schon mitbekommen und auch umgesetzt! Das Icon wird dargestellt. Allerdings wenn ich mehrere Aufträge untereinander anzeigen will, wird das Icon auf einmal in jedem Feld dargestellt!
Ich meine, die erste Zeile wird richtig dargestellt, das heißt die ersten 3 Felder enthalten nur Text, aber dann beim 4ten Feld, in dem nur das Icon zu sehen sein sollte wird das Icon und der Text von dem Column davor angezeigt. In der nächsten Zeile wird immer das Bild + dazugehörigen Text in jedem Column angezeigt, und das sollte nicht sein!
Hier mal mein Code, der hoffentlich mehr sagt...
Meine Methode
Meine Render Klasse
Ich hoffe das ich es soweit beschrieben habe, dass ihr etwas damit anfangen könnt!
Vielen Dank!
ich arbeite gerade an einem kleinen Projekt, in dem Aufträge mit ihren Statien dargestellt werden sollen. Das ganze soll in einer JTable angezeigt werden! Das hat bisher alles auch geklappt. Jetzt möchte ich den Status durch ein kleines Icon darstellen. Mit JTable habe ich noch nicht so die großen Erfahrungen, aber dass ich den DefaultTableRenderer überschreiben muss habe ich auch schon mitbekommen und auch umgesetzt! Das Icon wird dargestellt. Allerdings wenn ich mehrere Aufträge untereinander anzeigen will, wird das Icon auf einmal in jedem Feld dargestellt!
Ich meine, die erste Zeile wird richtig dargestellt, das heißt die ersten 3 Felder enthalten nur Text, aber dann beim 4ten Feld, in dem nur das Icon zu sehen sein sollte wird das Icon und der Text von dem Column davor angezeigt. In der nächsten Zeile wird immer das Bild + dazugehörigen Text in jedem Column angezeigt, und das sollte nicht sein!
Hier mal mein Code, der hoffentlich mehr sagt...
Meine Methode
Code:
String sSQL = "";
sSQL = "SELECT Barcode, State, Caller, dProcessed FROM t_history WHERE Barcode like '" + jComboBox1.getSelectedItem().toString() +"'";
try {
Connection con = talBE.getDBConnection();
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
ResultSet rs = stmt.executeQuery(sSQL);
rs.last();
Object rows[][] = new Object[rs.getRow()][4];
rs.first();
int itemp=0;
do {
//System.out.println(rs.getRow());
rows[itemp][0] = new String(rs.getString("Barcode"));
rows[itemp][1] = new String(rs.getString("caller"));
rows[itemp][2] = new String(rs.getString("dProcessed");
rows[itemp][3] = new ImageIcon();
itemp++;
} while(rs.next());
model.addRow(rows);
Object[] data = new Object[4];
data[0]= "Auftragsnummer";
data[1]= "Auftraggeber";
data[2]= "Datum/Uhrzeit";
data[3]= "Status";
model.setDataVector(rows, data);
jTable1.setModel(model);
} catch(SQLException sqle) {
sqle.printStackTrace();
}
Meine Render Klasse
Code:
public class MyKlassenRenderer extends JLabel implements TableCellRenderer{
public MyKlassenRenderer(){
setOpaque(true);
}
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
if(value instanceof Icon) {
setIcon( new ImageIcon("c:/TEMP/Bild1.png"));
}
else if(value instanceof String){
System.out.println(value);
setText(String.valueOf(value));
}
return this;
}
}
Ich hoffe das ich es soweit beschrieben habe, dass ihr etwas damit anfangen könnt!
Vielen Dank!