很简单,我试着在这里讨论如何修改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