我已经尝试了一段时间来获得一个 JButton 我必须返回一个字符串并且我让它在一定程度上工作但是它只在我使用 System.out.println() 方法时才有效。
我的相关代码:
private String answer;
public void inputDataButton(JButton inButton)
{
inButton.addActionListener(new Action1());
}
public String returnAnswer()
{
return answer;
}
private void fileAnswer(String inString)
{
answer = new String(inString);
}
public class Action1 implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String sub = JOptionPane.showInputDialog("Input The Date");
fileAnswer(sub);
}
}
用我的主要控制它:
public class test
{
protected static JTextField text;
public static void main(String[] args)
{
javaUI base = new javaUI("Date Killer", 800, 800);
JLabel label = new JLabel("Place Holder");
base.addLabel(label, 1, 0, false);
JButton button = new JButton("Press Here");
base.addButton(button, 0, 0, false);
String str = "EMPTY";
base.inputDataButton(button);
while (str == "EMPTY")
{
str = base.returnAnswer();
}
System.out.println(str + " TEST");
label.setText(str + "SETTED");
}
}
JavaUI 只是另一个类,它简化了标签、按钮等的整个 JFrame 和 Jpanel 设置。
无论如何,这是我的问题。在主类中,在 while 语句中,如果我后面直接有 System.out.println() 语句,则 str 被成功设置为字符串。 这显然会使终端变得一团糟,因为它会重复“EMPTY”100 多次,直到按下按钮。
但是,如果我删除该语句,则显然不会打印任何内容,但 str 也从未设置为 str 。
我已经搞砸了很长一段时间(所有java UI的新东西,主要只是在计算部分工作)而且我还没有找到一个不会弄乱我的终端的工作解决方案. 感谢大家的帮助!!!
凯尔