Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 按JButton而不是键盘_Java_Events_Key_Jbutton_Imagej - Fatal编程技术网

Java 按JButton而不是键盘

Java 按JButton而不是键盘,java,events,key,jbutton,imagej,Java,Events,Key,Jbutton,Imagej,我正在用Java和ImageJ进行一个项目。 要使以下各项正常工作,我有一个小问题: 我有一个JButton t。当我点击t时,它应该和我刚刚按下键盘上的“t”一样。 原因是(对于熟悉ImageJ的人来说),当您在ImageJ中拖出ROI并按下键盘上的“T”按钮时,它会打开区域管理器并将新拖出的ROI添加到管理器中。 因此,当我点击t按钮时,t按钮应该以某种方式执行一个键盘事件,当我点击t按钮时,它会为我按下“t”按钮,而不是将ROI添加到区域管理器中。不知道ImageJ是什么,但由于您使用的是

我正在用Java和ImageJ进行一个项目。 要使以下各项正常工作,我有一个小问题:

我有一个JButton t。当我点击t时,它应该和我刚刚按下键盘上的“t”一样。 原因是(对于熟悉ImageJ的人来说),当您在ImageJ中拖出ROI并按下键盘上的“T”按钮时,它会打开区域管理器并将新拖出的ROI添加到管理器中。
因此,当我点击t按钮时,t按钮应该以某种方式执行一个键盘事件,当我点击t按钮时,它会为我按下“t”按钮,而不是将ROI添加到区域管理器中。不知道ImageJ是什么,但由于您使用的是
JButton
,我猜它是基于
Swing
。在秋千上你会用这个。也就是说,您可以创建一个
操作
,当您单击按钮或使用键盘时可以使用该操作

从行动开始:

Action tAction = new AbstractAction()
{
    @Override
    public void actionPerford(ActionEvent e)
    {
        // do something
    }
}
使用JButton:

JButton button = new JButton( tAction );
button.setText("some action");
使用密钥绑定:

button.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("T"), "tAction");
button.getActionMap().put("tAction", tAction);

把我算在那些仍然困惑的人当中,所以如果你很快没有得到一个正确的答案,考虑一下澄清你的问题并显示代码。请看一下好的建议。此外,您可能还想摆脱“请不要让您的编码太复杂…”这句话。1) 这个网站是用来回答问题,而不是获取代码的,2)这个网站的工作人员都是志愿者,所以你不会想限制你可能得到的任何答案。如果在回答或评论中有什么让你困惑的地方,就直接问:“请不要让你的编码太复杂……”请问一个问题。为了更快地获得更好的帮助,请发布一个or。谢谢,但这不起作用。我必须把它放在不同的班级吗?因为当我实现了这个动作,然后我实现了keybindings,keybings怎么知道他们必须执行上面写的代码呢?为我可怜的孩子道歉english@MaxRoth,
按键组如何知道他们必须执行代码,
-因为您使用InputMap/ActionMap将击键绑定到动作。在上面的例子中,当我点击按钮时,
tAction
绑定到
T击键
,就像我按下键盘上的“T”一样。
-查看完整的例子。