我按计划要做的是当按Enter
键时,应用程序将启动按钮btn_teach
,并切换到另一个标签,集中注意力为textfield
。现在,当我实现它时,它完美地工作如果我手动按下按钮(不按Enter
)。当我实际按Enter
时,选项卡会切换回来,但该选项卡上的文本字段未被聚焦。当在JTabbedPane中的标签之间切换时,通过KeyListener更改焦点
tp
是JTabbedPane
。 我的计划是从标签索引1切换到标签索引0,并设置txt_send
集中
public void actionPerformed(ActionEvent arg0)
{
// TODO Auto-generated method stub
String say = txt_saypane.getText();
String ans = txt_anspane.getText();
//this.clear();
say = say.replace("\n","");
ans = ans.replace("\n","");
this.talk(this.botTeach(say,ans), false);
tp.setSelectedIndex(0);
}
public void stateChanged(ChangeEvent arg0)
{
// TODO Auto-generated method stub
int sel = tp.getSelectedIndex();
if(sel == 0)
txt_send.requestFocusInWindow();
if(sel == 1)
txt_saypane.requestFocusInWindow();
}
public void keyPressed(KeyEvent e)
{
// TODO Auto-generated method stub
if(e.getKeyCode() == KeyEvent.VK_ENTER)
{
if(txt_saypane.isFocusOwner() || txt_anspane.isFocusOwner())
btn_teach.doClick();
}
}
什么是JTabbedPane
标签之间切换时改变通过KeyListener
焦点的正确方法是什么?
好像这里按ENTER键单独才是真正的渔获物。为了达到这个目的,我尝试了所有可能的方法,但似乎必须使用另一个键与ENTER键一起才能获得所需的结果。不知道这是否是一个错误,因为过去从未遇到过这个问题。请尝试focusButton.addMnemonic(KeyEvent.VK_ENTER);正如我最近的编辑中所描述的那样,可以给出所需的结果。但是,当单独使用ENTER键时,似乎还有其他工作正在进行。 – 2012-02-04 15:23:36