Здесь я столкнулся с небольшой проблемой.
Моя цель - добавить GIF image в кнопку и отправить эту кнопку в JTable .
Прежде всего, я сделал jtable с настроенным кодом.
private javax.swing.JTable Tbl_Monkey = new javax.swing.JTable();
Tbl_Monkey.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null, null, null, null, null, null, null, null, null, null}
},
new String [] {
"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13"
}
) {
boolean[] canEdit = new boolean [] {
true, false, false, false, false, false, false, false, false, false, false, false, false
};
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit [columnIndex];
}
@Override
public Class getColumnClass(int columnIndex) {
return JButton.class;
}
});
Tbl_Monkey.setDefaultRenderer(JButton.class, new JButtonTableRenderer());
А также я сделал его настроенный рендерер JTable .
public class JButtonTableRenderer extends DefaultTableCellRenderer {
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,
boolean hasFocus, int row, int column) {
return (JButton) value;
}
}
После этого я устанавливаю значок (GIF) JButton, затем передаю его прямо в JTable, используя DefaultTableModel , ион идеально вписывается в JTable , но анимированный GIF не анимирует .
DefaultTableModel oDtb = (DefaultTableModel) Tbl_Monkey.getModel();
oDtb.addRow(oTheObjectArrayofJButton);
Я понял, что если я просто сделаю JButton вне JTable,Иконка (GIF) оживила бы.Но если я помещу JButton в JTable, это не оживляет.Если только я не нажму эту кнопку ... тогда анимация наступит, но это только 1 кадр.Я должен повторно щелкнуть, чтобы получить анимацию этого GIF на нажатой кнопке.Это не хорошо ....
Как решить это?