Swing jpopupmenu在何处添加侦听器
我有一个jTextField,旁边有一个按钮,可以调用弹出菜单。弹出菜单包含jTextField的标准文本列表。此列表保存在可变长度的列表数组中,因为它也可以添加到程序的其他位置 我正在使用以下命令生成弹出菜单Swing jpopupmenu在何处添加侦听器,swing,jpopupmenu,Swing,Jpopupmenu,我有一个jTextField,旁边有一个按钮,可以调用弹出菜单。弹出菜单包含jTextField的标准文本列表。此列表保存在可变长度的列表数组中,因为它也可以添加到程序的其他位置 我正在使用以下命令生成弹出菜单 for(i=0;i<=menuArray1.size()-1;i++){ JMenuItem item = new JMenuItem((String) menujlArray1.get(i)); jPopupMenu1.add(item);
for(i=0;i<=menuArray1.size()-1;i++){
JMenuItem item = new JMenuItem((String) menujlArray1.get(i));
jPopupMenu1.add(item);
}
for(i=0;i您需要添加一个接口。如果您的JMenuItem
实现了ItemSelectable
接口,您可以将代码更改为如下所示:
ItemListener il =
e -> {JMenuItem source = (JMenuItem)(e.getSource());
String s = "Item event detected on '" + source.getText() +",New state: "
+ ((e.getStateChange() == ItemEvent.SELECTED) ?
"selected":"unselected");
jTextField.setText(s);
};
for(i=0;i<=menuArray1.size()-1;i++){
JMenuItem item = new JMenuItem((String) menujlArray1.get(i));
jPopupMenu1.add(item);
item.addItemListener(il);
}
ItemListener il=
e->{JMenuItem source=(JMenuItem)(e.getSource());
String s=“在''+源.getText()+'上检测到项事件,新状态:”
+((e.getStateChange()==ItemEvent.SELECTED)?
“选定”:“未选定”);
jTextField.setText;
};
对于(i=0;iI)我理解回复将把字符串s放入jTextField,但它不起作用。有什么建议吗?