簡體   English   中英

無法專注於JDialog中的JTextField

[英]Can't focus on JTextField in JDialog

我試圖將重點放在JDialog中的JTextField上。 在探究類似問題后,我嘗試了此鏈接中的所有建議,但這些建議均無效。

我要關注的組件是在一個名為“ InputTaskWindow”的類中創建的,而我正在嘗試從一個名為“ MainWindow”的類中創建一個對話框。 問題出在這里(在“ MainWindow”中):

public  class NewTask extends AbstractAction {

JList mTaskList;
JTextArea mDetailsTextArea;

public NewTask (JList tl, JTextArea dta){
    mTaskList = tl;
    mDetailsTextArea = dta;
}

public void actionPerformed(ActionEvent e) {
    int option = 0;
    InputTaskWindow inputTaskWindow = new InputTaskWindow();
    JOptionPane optionPane = new JOptionPane(inputTaskWindow.createComponents(), JOptionPane.PLAIN_MESSAGE, JOptionPane.OK_CANCEL_OPTION);

    JDialog dialog = optionPane.createDialog("New Task");

    dialog.setSize(200, 200);

    dialog.pack();

    ((JTextField) inputTaskWindow.getComponent(inputTaskWindow.NAMETF)).requestFocus();

    dialog.setVisible(true);

    if (optionPane.getValue() != null){
        option = (Integer)optionPane.getValue();
    }

    if (option == JOptionPane.OK_OPTION){
        Task t = inputTaskWindow.getTask();
        activeDay.addTask(t);
    }

    populateLists(mTaskList);
}

我將要訪問的JTextField放在GUI類的JComponent數組中; 我已經使用getComponents()方法訪問了其他組件,所以我知道這指向了正確的東西。

我試過了requestFocus(),requestFocusInWindow(),在NewTask類中添加了ancestorListener,並在InputTaskWindow中創建JTextField時添加了ancestorListener(在兩種情況下,我都將其添加到JTextField中並使用描述的RequestFocusListener類在鏈接中)。 任何幫助將非常感激。

我尚未確定問題出在哪里,但是我決定放棄此代碼。 我強烈懷疑問題與刷新功能有關,而不是對焦點方法的誤解(我的第一個假設)。 該代碼太糾結,無法進行整理,因此我正在考慮關閉問題。

暫無
暫無

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

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