gpt4 book ai didi

java - 如何在 jpopupmenu 中捕获用户对 jradiobutton 的选择?

转载 作者:行者123 更新时间:2023-11-30 07:23:13 24 4
gpt4 key购买 nike

我已经能够在我的框架和菜单项中显示一个弹出菜单,一组单选按钮可以使用箭头键导航。当用户按下 Enter/Return 时,弹出菜单不再可见,我假设可以确定选择了哪个按钮并分配操作。

    private static final JPopupMenu popupSyncTIR = new JPopupMenu();
popupSyncTIR.setLabel("Sensor Synced to Clock");
ButtonGroup grpTIR = new ButtonGroup();
JRadioButtonMenuItem rbTIRMenuItem;
rbTIRMenuItem = new JRadioButtonMenuItem("Sync TIR-A to clock");
rbTIRMenuItem.setFont(new Font("Dialog", Font.BOLD, 16));
grpTIR.add(rbTIRMenuItem);
popupSyncTIR.add(rbTIRMenuItem);
rbTIRMenuItem = new JRadioButtonMenuItem("Sync TIR-B to clock");
rbTIRMenuItem.setFont(new Font("Dialog", Font.BOLD, 16));
rbTIRMenuItem.setSelected(true);
grpTIR.add(rbTIRMenuItem);
popupSyncTIR.add(rbTIRMenuItem);
rbTIRMenuItem = new JRadioButtonMenuItem("Sync TIR-C to clock");
rbTIRMenuItem.setFont(new Font("Dialog", Font.BOLD, 16));
grpTIR.add(rbTIRMenuItem);
popupSyncTIR.add(rbTIRMenuItem);

我还像这样为整个框架实现了键映射:

/**
* alt-T period synch TIR sensor w/clock
*/
@SuppressWarnings("serial")
private static void registerSyncTIRAction() {
javax.swing.Action tirSync = new AbstractAction() {
@Override
public void actionPerformed(ActionEvent ae) {
setTIRSensorSync();
}
};
KeyStroke keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_T,
java.awt.event.InputEvent.ALT_DOWN_MASK);
((JComponent) contentPanel).getActionMap().put("TirSync", tirSync);
((JComponent) contentPanel).getInputMap(
JComponent.WHEN_IN_FOCUSED_WINDOW).put(keyStroke, "TirSync");

}

/**
* Show the TIR popup
*/
private static void setTIRSensorSync() {
popupSyncTIR.show(pnlTIR, 10, 10);
}

如何确定在用户按下 Enter 之前选择了哪个单选按钮?

最佳答案

就像您使用不在菜单中的单选按钮一样 :-) 使用操作:

Action actionA = new AbstractAction("Synch A to clock") {

@Override
public void actionPerformed(ActionEvent e) {
// do stuff A
}
};
JRadioButtonMenuItem buttonA = new JRadioButtonMenuItem(actionA);
Action actionB = new AbstractAction("Synch B to clock") {

@Override
public void actionPerformed(ActionEvent e) {
// do stuff B
}
};
JRadioButtonMenuItem buttonB = new JRadioButtonItem(actionB);
ButtonGroup ... // add buttons to group
JPopupMenu ... // add buttons to menu

关于java - 如何在 jpopupmenu 中捕获用户对 jradiobutton 的选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12150866/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com