我是 Swing 新手。我几周前刚开始使用 Swing,但在某个时候我陷入了困境。
我设计了一个JTable
单击(右侧)一些行时,它会打开一个弹出菜单,其中包含“更改行颜色”选项(JMenuItem
),点击哪个JColorChooser
打开,用户可以选择颜色,并且相同的颜色将设置为所选行。
有可能做到吗?如何?
在此输入图像描述 https://i.stack.imgur.com/PA8u2.jpg
在此输入图像描述 https://i.stack.imgur.com/fYHf2.jpg
如果您希望能够单独为每一行着色,那么一种方法是将颜色作为数据的一部分存储在 TableModel 中。因此,您需要将颜色添加为模型中的列。
但是您不想在表视图中显示此列,因此您需要将其从视图中删除:
table.removeColumn( table.getColumn(...) );
接下来,您需要为表格添加自定义渲染。一种方法是为整行添加渲染。查看表行渲染 https://tips4java.wordpress.com/2010/01/24/table-row-rendering/有关此方法的示例。
所以渲染的基本代码如下:
Color background = table.getTableModel.getValueAt(row, ???);
if (background != null)
c.setBackground( background );
当您显示颜色选择时,您需要将颜色保存到 TableModel:
table.getTableModel().setValueAt(color, table.getSelectedRow(), ???);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)