单元格渲染器:
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
if(value!=null && ai38DataModel!=null){
//panel.removeAll();
List<AI38BetModelTable> modelList = ai38DataModel.getModelList();
LinkedHashMap<String, JPanel> elePanelMap = ai38DataModel.getElePanelMap();
if(modelList!=null || !modelList.isEmpty() || !elePanelMap.isEmpty()){
AI38BetModelTable model = modelList.get(row);
String key = ai38DataModel.getPanelEleStringKey(model.getSelectedEvent().getEventCode(), model.getSelectedBetCode(), model.getElement(), (Set<Integer>)value);
panel = elePanelMap.get(key);
}
}
return panel;
}
将JChecboxs添加到面板:
for(Integer value: nameValuePair.get(key)){
JCheckBox jChkbx = new JCheckBox(value.toString());
jChkbx.setOpaque(false);
jChkbx.addItemListener(listener);
panel.add(jChkbx);
}
[在此输入图片描述][1]
强文本[1]:https://i.stack.imgur.com/D8Mhs.png
请查找所附图像。
当我使用GridBaglayout而不是FlowLayout时,我的问题得到了解决。现在,JCheckbox与面板内的中心对齐。
for(String key : nameValuePair.keySet()){
JPanel panel = new JPanel(new GridBagLayout());
modelList.add(new AI38BetModelTable(selectedeEvent,selectedBetCode,key,nameValuePair.get(key)));
String keyForPanel = ai38DataModel.getPanelEleStringKey(selectedeEvent.getEventCode(), selectedBetCode, key, nameValuePair.get(key));
for(Integer value: nameValuePair.get(key)){
JCheckBox jChkbx = new JCheckBox(value.toString());
jChkbx.setOpaque(false);
jChkbx.addItemListener(listener);
panel.add(jChkbx);
}
panelEleMap.put(keyForPanel, panel);
}
问题内容: 我正在跟踪发现的一些代码,(是的,我知道它是如何工作的)它来自这里:代码链接 我想做的是如果单元格值设置为“黄色”,则设置单元格前景色 这是我的代码: 和单元格渲染器 问题是,如果我将任何单元格值设置为“黄色”,它就不会改变 提前致谢! 问题答案: 您的渲染器曾经使用过吗?您将其设置为包含String的单元格的默认渲染器,但是是否重载了模型的方法,以便它知道某些单元格包含String
问题内容: 我不知道如何对齐JTable中单元格的值。 例如,Jtable显示姓名工资X.先生100000.50 XXXX 234.34 YYYy 1205.50 我想以以下格式对齐“薪水”。 如何在JTable上方对齐 问题答案: 无需为此创建自定义类,只需使用默认渲染器即可: 或者更好的方法是在表中实际存储Double值,然后使用适当的数字渲染器,数字渲染器将自动右对齐。然后,您可以使用表格格
我的代码有一个特殊的问题。 然后它会发生在图像上出现的事情。我需要汉字列是CENTER对齐,但出于某种原因,'tcr,不工作,因为它应该是,但默认渲染器正在做它应该是。 有什么建议/帮助吗?
问题内容: 假设我有以下JTable,只要按下一个按钮,就会显示该JTable: 我想呈现 最初 对JCheckBox 为真的单元格,以及所有 最初为 false的所有单元格不显示任何内容(无JCheckBox)。用户可以选中或取消选中最初为真的单元格中的JCheckBoxes,这会对我创建的图表有所帮助。 现在,我的单元格渲染器在所有单元格中显示JCheckBoxes,包括最初为false的单元
问题内容: 你们真是太棒了,为我在最后一个问题上指明了正确的方向,我在这里对我原来的问题进行了扩展: 如何将JTable列设置为String并排序为Double? 由于现在我使用自定义单元格渲染器将价格列的格式设置为$ ###,## 0.00,因此我现在还为该单元格设置了JTextField编辑器。单元格的编辑工作正常,除了更新值时,自定义渲染器中设置的数字格式似乎不再格式化单元格(在提交编辑后,
问题内容: 我正在尝试实现本教程中描述的自定义TableRenderer 。我想让渲染器对每个给定单元格很长的文本进行换行。这个想法是,使用TextArea作为渲染器,因为它支持换行。但是,以下代码无法正常工作: 我将此渲染器设置为 但是单元格条目保持未包装状态。如果我添加到该方法,则所有单元格都按预期是黄色,但没有被包裹。 有任何想法吗? 更新: 正如Michael Borgwardt在评论中指