Swing - 如何在JTable单元格中添加JPopupMenu

时间:2014-08-13 09:19:27

标签: java swing jtable cell jpopupmenu

我想为我的JTable列中的每个单元格插入一个JPopupMenu(以便能够选择多个项目)。 知道怎么做吗?

2 个答案:

答案 0 :(得分:2)

对于单元格内的多个选择,您需要两个自定义renderer and editor。对于编辑器组件,请使用JList,并将选择模式设置为MULTIPLE_INTERVAL_SELECTION。渲染器应显示适合内容的内容,例如:以逗号分隔的值列表。请注意,每行的数据必须存储在TableModel中,而不是存储在渲染器和编辑器本身中。详细信息取决于您的数据模型,但List<String>EnumSet<String>可能是合适的。

答案 1 :(得分:0)

回答你的问题如何在JTable Cell中添加JPopupMenu?你可以这样做:

private final JTable table = new JTable(model);
DefaultCellEditor ce = (DefaultCellEditor)table.getDefaultEditor(Object.class);
JTextComponent tc = (JTextComponent)ce.getComponent();
JPopupMenu popup = new JPopupMenu();

//add items to popup here

tc.setComponentPopupMenu(popup);

请参见此工作example

您说&#34;能够选择多个项目&#34; :在他的回答中,您可能无法使用JPopupMenu作为@trashgod状态。

希望这可以提供帮助。