【发布时间】:2015-03-19 16:17:21
【问题描述】:
我有一个创建 JFrame 的类。创建 JFrame 时,它有一个开始按钮。单击开始按钮时,它会运行两个线程,直到单击停止按钮。这两个线程在另一个类文件中。从包含线程的类中,如何访问 JFrame 实例以更改显示的值?
【问题讨论】:
-
你有一些可以发布的代码吗?变量范围将有助于解决这个问题。
标签: java swing methods concurrency jframe
我有一个创建 JFrame 的类。创建 JFrame 时,它有一个开始按钮。单击开始按钮时,它会运行两个线程,直到单击停止按钮。这两个线程在另一个类文件中。从包含线程的类中,如何访问 JFrame 实例以更改显示的值?
【问题讨论】:
标签: java swing methods concurrency jframe
为了实现这一点,您必须使用 this 关键字传递 JFrame 的引用。
【讨论】:
要访问另一个类中的私有实例,我认为您应该使用agetter。 示例:
//JFrame declaration
private JFrame frame;
//Getter
public JFrame getFrame() {
return frame;
}
【讨论】:
正如一个答案所指出的,您可以将 GUI 的引用或视图传递给任何需要它的类,例如通过将 GUI 类传递给另一个类的构造函数参数,并使用该参数设置一个字段,但话虽如此,但有一些警告:
SwingUtilities.invokeLater(someRunnable) 将 Swing 调用排队到 EDT
请注意,此帮助非常笼统,但如果您需要更具体的帮助,则需要发布有关您的问题和相关代码的更具体信息。
【讨论】: