java - 类的全局字段

标签 java swing design-patterns derived-class

我遇到的一个非常常见的问题是,我有一些字段,并且我想通过从字段类派生初始化的类来引用它们。 让我说得更具体一些。

Class Diagram

我有从主类派生的三个类。 每个类都有一个与字段交互的方法。在本例中,有一个 JFrame 调用一个类(JPanel)并将其添加到内容 Pane 。

我发现的方法是将 Frame 类创建的对象的引用传递给 Panel 类的构造函数。并通过它引用它们。

有没有更有效的方法?如何为所有派生类创建全局字段或方法在这种情况下它们是主类的组件?

更新

类似这样的事情。

import javax.swing.JFrame;
import javax.swing.JPanel;

public class JFrame1 extends JFrame {

    protected String field1;
    protected String field2;

    public JFrame1() {
        add(new Panel1());
    } 
}

class Panel1 extends JPanel {

    public Panel1() {

         //   field1 = "String"; Wrong
        }
    }

我知道我可以嵌套class Panel1里面public class Frame1问题就解决了,但是如果我希望这两个类位于不同的文件中怎么办?

最佳答案

从主类派生的三个类 - 这是什么意思?您的三个类派生自(扩展)JPanel,并且其中没有任何字段。

如果您询问您的三个类应如何访问 Frame1(可能是它们的容器)中的字段 - 那么您应该使用 getParent()要获取对父类的引用,请检查它是否为 Frame1,如果是,则访问其字段。

关于java - 类的全局字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9379137/

相关文章:

Java:可以访问父类(super class)字段和方法的策略模式?

java - Mac OS X 10.4.11 上的 JNI 错误... dyld : Symbol not found: _objc_setProperty

java - 在 java swings 中切换/导航 jpanels

java - 如何创建包含从 1 到 n 的所有数字的二叉搜索树

java - 从另一个线程的类访问一个线程类的公共(public)静态数组列表

Java Swing - JSpinner 中的问题

c++ - 这是一个糟糕设计的例子吗?

design-patterns - 一个对象是否应该拥有一个基于业务逻辑的属性?

Java 树节点着色

java - Java中的静态方法