有人可以帮助我提高这段代码的效率。我知道有更好的方法可以做到这一点,但我无法弄明白。对不起,我是Java的新手。任何帮助将不胜感激。
我希望单元格和文本的颜色根据单元格中的数字值进行更改。如果值范围是: - 0-39 =红色 - 40-69 =绿色 - 70以上=橙色 - 其他一切都是白色的黑色文字
这是我的代码。提前致谢
DefaultTableModel model = new DefaultTableModel(data, columnNames);
JTable table = new JTable(model) {
@Override
public Component prepareRenderer(TableCellRenderer renderer, int row, int col) {
Component newcomponent = super.prepareRenderer(renderer, row, col);
Object value = getModel().getValueAt(row, col);
if ((value.equals(39)) || (value.equals(38)) || (value.equals(37)) || (value.equals(36))
|| (value.equals(35)) || (value.equals(34)) || (value.equals(33)) || (value.equals(32))
|| (value.equals(31)) || (value.equals(30)) || (value.equals(29)) || (value.equals(28))
|| (value.equals(27)) || (value.equals(26)) || (value.equals(25)) || (value.equals(24))
|| (value.equals(23)) || (value.equals(22)) || (value.equals(21)) || (value.equals(20))
|| (value.equals(19)) || (value.equals(18)) || (value.equals(17)) || (value.equals(16))
|| (value.equals(15)) || (value.equals(14)) || (value.equals(13)) || (value.equals(12))
|| (value.equals(11)) || (value.equals(10)) || (value.equals(9)) || (value.equals(8))
|| (value.equals(7)) || (value.equals(6)) || (value.equals(5)) || (value.equals(4))
|| (value.equals(3)) || (value.equals(2)) || (value.equals(1)) || (value.equals(0))) {
newcomponent.setBackground(Color.red);
newcomponent.setForeground(Color.red);
} else if ((value.equals(69)) || (value.equals(68)) || (value.equals(67)) || (value.equals(66))
|| (value.equals(65)) || (value.equals(64)) || (value.equals(63)) || (value.equals(62))
|| (value.equals(61)) || (value.equals(60)) || (value.equals(59)) || (value.equals(58))
|| (value.equals(57)) || (value.equals(56)) || (value.equals(55)) || (value.equals(54))
|| (value.equals(53)) || (value.equals(52)) || (value.equals(51)) || (value.equals(50))
|| (value.equals(49)) || (value.equals(48)) || (value.equals(47)) || (value.equals(46))
|| (value.equals(45)) || (value.equals(44)) || (value.equals(43)) || (value.equals(42))
|| (value.equals(41)) || (value.equals(40))) {
newcomponent.setBackground(Color.green);
newcomponent.setForeground(Color.green);
} else if ((value.equals(100)) || (value.equals(99)) || (value.equals(98)) || (value.equals(97))
|| (value.equals(96)) || (value.equals(95)) || (value.equals(94)) || (value.equals(93))
|| (value.equals(92)) || (value.equals(91)) || (value.equals(90)) || (value.equals(89))
|| (value.equals(88)) || (value.equals(87)) || (value.equals(86)) || (value.equals(85))
|| (value.equals(84)) || (value.equals(83)) || (value.equals(82)) || (value.equals(81))
|| (value.equals(80)) || (value.equals(79)) || (value.equals(78)) || (value.equals(77))
|| (value.equals(76)) || (value.equals(75)) || (value.equals(74)) || (value.equals(73))
|| (value.equals(72)) || (value.equals(71)) || (value.equals(70))) {
newcomponent.setBackground(Color.orange);
newcomponent.setForeground(Color.orange);
} else {
newcomponent.setBackground(Color.white);
newcomponent.setForeground(Color.black);
}
return newcomponent;
}
};
答案 0 :(得分:1)
我不知道您是将数据存储为字符串还是整数,但基本逻辑是使用">"和"<"操作员测试一系列值。
然后您可以为每个范围指定颜色:
if (value > ??? && value < ???)
// set the color
else if (value > ??? && value < ???)
// set another color
else if (...)