【发布时间】:2013-06-27 13:04:57
【问题描述】:
这是在 JPanel 的构造函数中,但是当我按“h”时它不会打印任何内容。如果需要更多代码,我可以提供。谢谢!
String hide = "hide";
this.getInputMap().put(KeyStroke.getKeyStroke('h'), hide);
this.getActionMap().put(hide, new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("HIDDEN");
if (isHidden){
slide.setVisible(true);
}else{
slide.setVisible(false);
}
}
});
【问题讨论】:
-
顺便说一句,你只能使用
slide.setVisible(isHidden);,如果我没有弄错或者当祖先时,你可以使用`getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW)' -
我不确定我是否遵循。 slide.setVisible(true/false) 据我所知效果很好。
-
你可以用一行代码的 if/else 语句来做同样的事情。
-
啊,我明白你在说什么。如何在没有 if/else 的情况下告诉布尔值切换到相反的值?
-
切换你可以使用的状态:
slide.setVisible( ! slide.isVisible() );
标签: java swing jpanel action key-bindings