我想创建一个类似于JOptionPane输入窗口的窗口。目标是在任何其他类中使用该类作为输入方式。我希望每个人都能听懂我的英语; D. 我有两节课:
代码:
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class UI03 extends JFrame{
private JLabel frage;
private JTextField antwort;
public String string;
public UI03(){
super("Eingabe");
setLayout(new FlowLayout());
frage = new JLabel();
antwort = new JTextField();
antwort.setPreferredSize(new Dimension(100,24));
}
private class eventHandler implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
UI03.this.string = antwort.getText();
System.exit(0);
}
}
public String input(String s) {
frage.setText(s);
add(frage);
add(antwort);
setVisible(true);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
pack();
setLocationRelativeTo(null);
eventHandler handler = new eventHandler();
antwort.addActionListener(handler);
return string;
}
}
以及我要在其中使用的主类
public class UIMain {
public static void main(String[] args) {
UI03 in = new UI03();
String h = in.input("?");
System.out.println(h);
}
}
因此,如果我启动它,输出为“ null”。 窗口打开,我可以写任何东西。
如果您需要更多信息,请在评论中提问。 我感谢每个想要帮助的人。
答案 0 :(得分:0)
首先:请为类名称使用CamelCase。
关于您的问题:您不要在方法“输入”中的任何位置分配“字符串”。我认为您不了解EventHandler的概念。
在创建Window时应分配一个EventHandler,而不是在运行某些方法时分配。
也可以考虑在发布此类内容之前阅读此处的指南。 (您似乎是一名学生,所以我让那一个通过。)