我制作了一个java应用程序来管理任务。
我的应用程序已连接到MySQL数据库。
我需要优先级等于1的表格行自动更改颜色。我一直在寻找并找到一些例子,但我无法与我的桌子一起工作。 我的表是使用拖放创建的,所以它是默认类型,因为您可以通过代码看到。
有人可以帮助我尝试在我的小应用程序中实现此功能吗?
我真的气馁。
对不起大家。
有人可以帮我吗?
我的jtable代码
DefaultTableModel tmTasks = new DefaultTableModel(null, new String[]{"Status", "Priority", "Task", "Desc", "Date"});
List<Tasks> tasks;
ListSelectionModel lsmTasks;
private void showTasks(List<Tasks> tasks) {
while (tmTasks.getRowCount() > 0) {
tmTasks.removeRow(0);
}
if (tasks.size() == 0) {
JOptionPane.showMessageDialog(null, "NO Tasks");
} else {
String[] line = new String[]{null, null, null};
for (int i = 0; i < tasks.size(); i++) {
tmTasks.addRow(line);
tmTasks.setValueAt(tasks.get(i).getStatus(), i, 0);
tmTasks.setValueAt(tasks.get(i).getPriority(), i, 2);
tmTasks.setValueAt(tasks.get(i).getTasks(), i, 1);
tmTasks.setValueAt(tasks.get(i).getDesc(), i, 3);
tmTasks.setValueAt(tasks.get(i).getDate(), i, 4);
}
}
}
我的任务jtable!
答案 0 :(得分:1)
您的桌子需要一个单元格渲染器。像这样的东西
public class PriorityCellRenderer extends DefaultTableCellRenderer {
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
super.getTableCellRendererComponent(
table, value, isSelected, hasFocus, row, column);
if (Integer.valueOf(1).equals(table.getValueAt(row, 1))) {
setForeground(Color.RED); // or background
}
return this;
}
}
安装渲染器:
table.setDefaultRenderer(Object.class, new PriorityCellRenderer());