我一直在尝试一段时间得到一个JButton我必须返回一个字符串,我有它在一定程度上工作,但它只适用于当我使用System.out.println()方法。从JButton press Action Listener返回一个字符串?
我的相关代码:
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被成功设置为字符串。 这显然使终端变得非常混乱,因为它重复“空”100次直到按下按钮。
但是,如果我删除该语句,显然没有什么是打印出来的,但是str永远不会设置为str。
我一直在这里乱搞了很长一段时间(新的所有Java UI的东西,主要只是在计算部分的东西),我还没有找到一个工作的解决方案,不做一个我的终端一团糟。感谢所有的帮助!
Cail
什么是使其工作的'System.out.println()'语句?而且,为什么'while.'循环中的'base.returnAnswer()'?每次调用它时是否返回不同的答案? – 2013-03-01 10:34:43
由于我不知道按钮将被按下的位置,因此我为循环直到字符串不是“空”的字符串设置了一个while循环。但是,如果循环内部有一个System.out.println(str)语句,它只会退出循环,否则会变得无止境。 – 2013-03-01 10:38:59