有几次我因为建议使用以下方法而受到批评:
在Swing组件上.当我想在显示的组件之间定义比例时,我没有看到任何替代它们的用法.我被告知这个:
对于布局,答案总是相同的:使用合适的LayoutManager
我在网上搜索了一下,但我没有找到任何关于这个主题的综合分析.所以我有以下问题:
我正在尝试创建一个表格和颜色特定的单元格,黄色,红色或白色,具体取决于其他列的内容.为此,我循环填充值的行,然后检查内容.对于当前显示在屏幕上的每一行都可以正常工作,但是当程序到达未显示的行时,或者如果用户尝试滚动每个单元格,则将其背景颜色更改为白色.我在网上搜索了解决方案,唯一合理的想法是在每次循环后重置cellRenderer,这不起作用,因为它也会重置每个单元格.
我希望有人知道这方面的解决方案,或者可以让我知道我在哪里搞砸了什么.
我正在使用这个循环
for(int e = 0; e < modules.size(); e++)
{
gui.clearOutputStream();
gui.getOutputStream().setText("Load Modul " + modules.get(e) + "\r\n");
version = getVersion(modules.get(e));
//Update current Row
updateRow(gui.getReleaseTabelle(), e);
}
Run Code Online (Sandbox Code Playgroud)
它调用这种方法
public void updateRow(JTable target, int row){
//...
//insert Values here
//...
CustomRenderer cr = new CustomRenderer();
cr.tab = target;
if(!target.getValueAt(row, 2).equals(target.getValueAt(row, 3)))
{
cr.Val1 = target.getValueAt(row, 1).toString();
target.setValueAt("X", row, 1);
}
else if(!target.getValueAt(row, 7).equals(""))
{
cr.Val1 = target.getValueAt(row, 1).toString();
target.setValueAt("Y", row, 1);
}
else
{
}
target.getColumnModel().getColumn(1).setCellRenderer(cr);
}
Run Code Online (Sandbox Code Playgroud)
这是我的CustomRenderer
class …Run Code Online (Sandbox Code Playgroud)