Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我可以从面板访问在中创建的类JFrame的变量和/或方法吗?_Java_Jframe - Fatal编程技术网

Java 我可以从面板访问在中创建的类JFrame的变量和/或方法吗?

Java 我可以从面板访问在中创建的类JFrame的变量和/或方法吗?,java,jframe,Java,Jframe,缩短代码: public class Test{ private JFrame frame; private TestPanel panel; Object obj; public static void main(String args[]) { Test test = new Test(); } public Test() { try { // Setup GUI frame = new JFrame("T

缩短代码:

public class Test{
  private JFrame frame;
  private TestPanel panel;
  
  Object obj;
 
  public static void main(String args[]) {
    Test test = new Test();
  }

  public Test() {
    try {
      // Setup GUI
      frame = new JFrame("Test");
      panel = new TestPanel();
      frame.add(panel);
    }
  }
}
是否可以从面板直接访问obj? 如果是:如何


提前感谢您的帮助

No;如果不将对对象的引用传递给面板,则不能执行此操作。

我无法从面板中准确理解您的意思。您能再指定一点吗?我正在Testpanel中编写一个方法,需要从obj调用一个方法。在我的例子中:obj是一个JChannel,我在Testpanel中的一个方法中创建了一条消息,但是找不到调用JChannel的send方法的方法。我认为你的意思是不可能的,因为框架和面板都没有提及obj。例如,是什么阻止您通过构造函数或setter将对obj的引用传递给面板?任务是修改代码,使图形同步。它从来没有明确规定我们可以编辑什么,所以我尝试只在我们被明确告知要编辑的地方添加内容,而不接触任何现有内容。^但我想我会把它交给面板的构造器,这样我就可以访问所有内容。感谢您的帮助: