1
學習編碼,建立一個GUI來確定每個事物如何相互作用。試圖編寫一個方法,以在我需要的大型程序中設置焦點(組件) - 即調用FocusGrabber(JTextField1)
並讓它將輸入焦點設置爲JTextField1
。爲了盡力做到最好的SSCCE,我做了一個簡單的主體,使得只有足夠的GUI給出了2個應該把焦點放在第二個文本域上的文本域。焦點沒有通過抓取焦點的方法來設置
package ODIN;
import java.awt.Component;
import java.util.List;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
/*
*/
class FocusGrabber implements Runnable {
private JComponent component;
public FocusGrabber(JComponent component) {
this.component = component;
}
@Override
public void run() {
component.grabFocus();
}
public static void main(String[] args){
//draw and show the GUI
JFrame GUI = new JFrame();
GUI.setTitle("New Provider Interface");
GUI.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JTextField textID = new JTextField("providerID ", 20);
final JTextField textName = new JTextField("Provider Name ", 20);
GUI.add(textID);
GUI.add(textName);
GUI.pack();
GUI.setVisible(true);
FocusGrabber(textName);
}
}
是的,它應該 - 我試圖通過一個最低限度的主要SSCCE轉錄,我錯過了那部分。將焦點捕捉者定義爲主要變量而不是事件偵聽者內部的響應,然後根據需要運行它們,這些都非常完美。 –