我刚接触Swing,创建了一个简单的GUI类,其中包含一个按钮和文本字段。在这个类中有一个方法String createAndShowUI()
,我想让它返回文本字段的文本。我创建了另一个主类调用这个方法,并期望返回文本字段的文本。但是我的问题是,这个方法不会等待用户输入文本并单击按钮;它会在GUI被调用时立即返回。我希望它等待按钮点击。
// TestSwing.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class TestSwing extends JPanel implements ActionListener {
JButton submit;
JTextField t1;
String msg = "No Msg";
public TestSwing() {
submit = new JButton("Submit");
t1 = new JTextField(10);
submit.addActionListener(this);
setLayout(new FlowLayout());
add(t1);
add(submit);
}
public void actionPerformed(ActionEvent e) {
if(e.getSource() == submit) {
msg = t1.getText();
}
}
public String createAndShowUI() {
JFrame f = new JFrame("Sample frame");
f.add(new TestSwing());
f.pack();
f.setVisible(true);
return msg;
}
}
//Main.java
public class Main {
public static void main(String[] arg) {
System.out.println(new TestSwing().createAndShowUI());
}
}
System.out.println("在用户输入文本之前,这行不应该被显示"); }
} - bhuvan