【发布时间】:2012-01-28 14:55:35
【问题描述】:
我在更新方法中的 jlabel 时遇到问题。这是我的代码:
JLabel curStatus = new JLabel("");
JButton jbtnSubmit;
public static void main(String[] args) {
test gui = new test();
gui.startGUI();
// gui.setCurStatus("testing!"); << seems to work here,
//but when i call it from another class, it doesn't want to run.
}
// Set up the GUI end for the user
public void startGUI() {
// These are all essential GUI pieces
new JTextArea("");
final JFrame jfrm = new JFrame("my program");
jfrm.setLayout(new FlowLayout());
jfrm.setSize(300, 300);
jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jbtnSubmit = new JButton("Submit");
jfrm.add(jbtnSubmit);
jfrm.add(curStatus);
jfrm.setVisible(true);
}
public void setCurStatus(String inCurStatus) {
curStatus.setText(inCurStatus);
curStatus.setVisible(true);
}
正在发生的事情是标签 curStatus 没有出现。例如,这是一个调用:
gui1.setCurStatus("Now running diagnostics... Please wait!");
【问题讨论】:
-
你是如何以及从哪里调用的???
-
您仍然需要显示更多上下文,甚至可能是SSCCE。
-
我认为这有点像......一个运行的程序,并且做我想要它做的事情?我知道它正在使用该方法,因为我做了一个系统输出打印,它打印出来了。
-
droidus:您的错误在于您没有向我们展示的代码。很可能您在非可视化引用上调用了一个方法,但是在您发布有问题的代码之前无法判断。
-
请学习java命名约定并遵守它们
标签: java swing jlabel concurrency