簡體   English   中英

按下JButton時將光標轉移到JTextField

[英]Transfer cursor to JTextField when press JButton

當我單擊“預覽頁面”按鈕時,光標應移至開始位置(txtStartPosition)。 以下是我編寫的代碼,但由於某種原因它無法正常工作。

    btnPreviewPage = new JButton("Preview Single");
    btnPreviewPage.setFocusable(false);
    btnPreviewPage.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
            txtStartPosition.setCaretPosition(txtStartPosition.getCaretPosition() - 1);
            new UIPreviewPage().execute();
        }
    });
    panel.add(btnPreviewPage, "cell 1 18,alignx right");

在此處輸入圖片說明

您需要執行JTextField.requestFocus(); 或者,更優選的JTextField.requestFocusInWindow();

https://docs.oracle.com/javase/7/docs/api/javax/swing/JComponent.html#requestFocus()

public void requestFocus()請求此Component獲得輸入焦點。 有關此方法的完整說明,請參考Component.requestFocus()。 請注意,不建議使用此方法,因為其行為取決於平台。 相反,我們建議使用requestFocusInWindow()。 如果您想獲得有關焦點的更多信息,請參閱《 Java教程》中的“如何使用焦點子系統”部分。

Overrides:
    requestFocus in class Component
    Since:
    1.4
    See Also:

    Component.requestFocusInWindow(), Component.requestFocusInWindow(boolean)

使用您的代碼應該

    tnPreviewPage = new JButton("Preview Single");
    btnPreviewPage.setFocusable(false);
    btnPreviewPage.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {

//Add YourJTextField.requestFocusInWindow() here, but not sure if the other information is needed
txtStartPosition.setCaretPosition(txtStartPosition.getCaretPosition() - 1);
            new UIPreviewPage().execute();
        }
    });
    panel.add(btnPreviewPage, "cell 1 18,alignx right");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM