如何将对象传递给工具并传递出本地对象?
如何将对象传递给工具并将本地对象传递给外部的对象?我认为SwingUtilities.invokeLater对于Swing对象来说是必要的,对吗?
Sensors sens = new Sensors();
SwingUtilities.invokeLater(new Runnable() {
public void run() {
GUI application = new GUI(sens);
application.getJFrame().setVisible(true);
}
});
SMS sms = new SMS(application);
这是我尝试解决问题,但我得到一个可以访问类型GUI的封闭实例。必须使用GUI类型的封闭实例限定分配(例如x.new A(),其中x是GUI的实例)。问题。
// in main
Sensors sens = new Sensors();
GUI application = null;
SwingUtilities.invokeLater(new GUIthread(sens , application));
SMS sms = new SMS(application);
//a class inside GUI.java , but not inside GUI class
class GUIthread implements Runnable{
Sensors s;
GUI g;
public GUIthread(Sensors s , GUI g){
this.s = s;
this.g = g;
}
@Override
public void run() {
// TODO Auto-generated method stub
g = new GUI(s);
g.getJFrame().setVisible(true);
}
}
源代码
没有找到相关结果
已邀请:
4 个回复
炬卤遁蝎变
如果您现在尝试使用
在其他代码中创建
的实例,您将收到类似于您所看到的编译错误。 您可以执行以下两项操作之一来“修复”问题: 如果您将
更改为
,则可以使用当前正在执行的
。但这意味着
的代码无法访问封闭类的(最终)实例变量;即
。 如果您不想将
更改为静态类,则需要按如下方式对其进行实例化:
跟进 任何使用静态类调用swing的下行? 只有我上面提到的那个。 那么,所有的实例化都发生在外部构造函数中?对? 不可以。上面“合格创建”示例中的代码可以出现在可以访问
类的任何地方。因为我们宣布它为
...... 如果在构造函数(或实例方法)中为
实例化
,则可以使用
。封闭的
实例与
相同。
委婪绷冗诉
代替。
朗排谎纷瘟
蜂佬渺