Assez simple, j'ai essayé de suivre d'autres questions ici sur la façon de modifier le JTable pour prendre un imageIcon. J'ai une image dans mon paquet appelé successIcon.png.Pourquoi mon JTable ne me laisse-t-il pas insérer un ImageIcon?
C'est le code pour mon JTable, la plupart du temps généré automatiquement par Net Beans:
statusTable = new javax.swing.JTable();
statusTable.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
},
new String [] {
"Icons", "Message"
}
) {
Class[] types = new Class [] {
javax.swing.ImageIcon.class, java.lang.String.class
};
boolean[] canEdit = new boolean [] {
false, false
};
public Class getColumnClass(int columnIndex) {
return types [columnIndex];
}
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit [columnIndex];
}
});
Un de mes boutons utilise une commande statique d'un autre fichier .java:
DBCommands.executeCommand(sqlArea.getSelectedText(), (DefaultTableModel) statusTable.getModel(), selectArea);
C'est la signature de méthode pour la méthode appelée. Cette commande est appelée bien, je suis compris juste au cas où:
public static void executeCommand(String command, DefaultTableModel model,
JTextArea selectArea){
Cette commande passe dans une méthode appelée printStatus qui est censé mettre à jour le JTable, mais il ne fonctionne pas. Dans un premier temps sous l'icône, elle écrirait « successIcon.png », mais avec mon code actuel, il ne met rien là du tout:
public static void printStatus(String message, String command, PrintWriter statFileWriter, DefaultTableModel model){
Object[] row = new Object[2]; // so I can add row to table
ImageIcon icon = new ImageIcon("successIcon.png");
row[0] = icon;
row[1] = message + " (" + command + ")" + "\n";
model.addRow(row);
}
Avez-vous essayé l'exemple par défaut? http://www.java2s.com/Tutorial/Java/0240__Swing/InsertarowtoatablethroughDefaultTableModelatspecifiedrow.htm – ImAtWar
Je ne comprends pas en quoi cela serait différent de ce que j'essaie. L'exemple utilise la méthode insertRow() au lieu de addRow(), ce qui serait difficile à implémenter car je dois ajouter. De plus, ils ont simplement ajouté un tableau Object, ce que j'essaie d'ajouter, sauf que le mien a un ImageIcon qui n'apparaîtra pas – Johnny
L'image est-elle chargée? Essayez de l'ajouter à une étiquette et d'ajouter l'écran comme test – MadProgrammer