很簡單,我試着在這裏討論如何修改JTable來獲取imageIcon。我的包中有一個名爲successIcon.png的圖像。爲什麼我的JTable不允許插入ImageIcon?
這是我的JTable中的代碼,通過網絡豆類大多是自動生成的:
DBCommands.executeCommand(sqlArea.getSelectedText(), (DefaultTableModel) statusTable.getModel(), selectArea);
這就是:
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];
}
});
我的一個按鈕,從另一個java文件使用static命令它調用的方法的方法簽名。該命令被稱爲細,我包括它以防萬一:
public static void executeCommand(String command, DefaultTableModel model,
JTextArea selectArea){
該命令將其傳遞到一個名爲printStatus方法,這是應該更新JTable中,但它不工作。起初,在圖標會打印出「successIcon.png」,但我目前的代碼,它不把任何東西存在一樣:
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);
}
你試過默認的例子嗎? http://www.java2s.com/Tutorial/Java/0240__Swing/InsertarowtoatablethroughDefaultTableModelatspecifiedrow.htm – ImAtWar
我不明白這與我所嘗試的不同。該示例使用insertRow()方法而不是addRow(),這對我來說很難實現,因爲我需要追加。此外,他們只是添加了一個Object數組,這正是我想要添加的,除了我的ImageIcon不會顯示出來 – Johnny
圖像是否加載?嘗試將其添加到標籤並將其添加到屏幕中作爲測試 – MadProgrammer