[英]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.