【发布时间】:2013-12-10 10:48:45
【问题描述】:
我有一个要填写的表格和 3 个复选框(黄色-橙色-红色),当我填写表格并选择一种颜色时,我单击一个按钮,该按钮将向 Jtable 添加一行带有所选颜色的行。 我使用了 TableCellRenderer 它可以工作,但是当我执行三到四次操作时,我所有的行都被选中的复选框着色。如何为每一行制作他的颜色? 这是我的代码:
JTable table = new JTable(
new DefaultTableModel(new Object[][] {}, columnNames));
TableColumn column1 = table.getColumnModel().getColumn(
0);
column1.setCellRenderer(getRenderer());
TableColumn column3 = table.getColumnModel().getColumn(
1);
column3.setCellRenderer(getRenderer());
TableColumn column2 = table.getColumnModel().getColumn(
2);
column2.setCellRenderer(getRenderer());
String desc = display.getSelectedItem().toString();
DefaultTableModel tm = (DefaultTableModel) table.getModel();
String numcam = num_cam;
String timeStamp = new SimpleDateFormat(
"yyyy-MM-dd--HH:mm:ss").format(Calendar
.getInstance().getTime());
tm.addRow(new Object[] { new String(timeStamp), new String(numcam),
new String(desc) });
table.setModel(tm);
// reinitialiser les boutons apres le click
buttonGroup.clearSelection();
buttonGroup2.clearSelection();
还有我的单元格渲染器代码
private static TableCellRenderer getRenderer() {
return new DefaultTableCellRenderer() {
/**
*
*/
private static final long serialVersionUID = 1L;
@Override
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus,
int row, int column) {
Component tableCellRendererComponent = super
.getTableCellRendererComponent(table, value,
isSelected, hasFocus, row, column);
tableCellRendererComponent.setBackground(Color.black);
setBorder(BorderFactory.createEmptyBorder(15, 15, 15, 15));
// verification de l couleur du bouton clické
if (yellow.isSelected()) {
tableCellRendererComponent.setForeground(new Color(255,
255, 51));
} else if (orange.isSelected()) {
tableCellRendererComponent.setForeground(new Color(255,
153, 0));
} else if (red.isSelected()) {
tableCellRendererComponent.setForeground(Color.RED);
}
return tableCellRendererComponent;
}
};
}
【问题讨论】:
-
为什么
if (yellow.isSelected()==true)只需if (yellow.isSelected())会起作用 -
好吧,这不是真正的问题
-
是的,这可能不是问题,只是一个建议
-
好吧,先生摇摆好建议
标签: java swing colors jtable tablecellrenderer