我按計劃要做的是當按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