我喜欢创建一个带有复选框和一个或两个可选文本字段的单元格。
如果我单击复选框,则文本字段将可见。我试图制作一张 ASCII 图片应该是什么样子:
[ ]
[X] [some string]
[X] [value1] [value2]
我知道如何创建自定义渲染器,但我不确定如何返回多个元素。如果我有一个复选框的渲染器,我只返回 JCheckBox:
class BooleanRenderer extends JCheckBox implements TableCellRenderer, UIResource
{
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
// doing some stuff...
return this;
}
}
最佳答案
@Thomas 等人。关于区分模型和 View 是正确的。您的模型包括一个 boolean 状态和一些相应的文本;你的观点是 JCheckBox
可以切换的和可以更改的文本。您需要一个渲染器来显示模型的当前状态,还需要一个编辑器来允许更改状态。
在这个 example , 类(class) Value
保存选定状态和基础数据,a Double
值(value)。 DataModel
, 实现 TableModel
, 管理一个 List<Value>
.请注意,编辑器和渲染器都使用共同的 java.text.DecimalFormat
.相关类 java.text.MessageFormat
在编写复选框的文本时可能很有用。
关于java - 一个单元格中包含多个元素的 JTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8340061/