是否包含来自外部java文件的面板?

是否包含来自外部java文件的面板?,java,swing,jpanel,Java,Swing,Jpanel,是否可以从另一个java文件将jpanel包含到容器中?假设我有两个java文件fileA.java和fileB.java。我想在fileA.java的容器中添加fileB.java的整个显示内容。这可能吗?只是很长一段时间的困惑。提前谢谢。是的,你可以 1-如果fileB类扩展了JPanel,则创建fileB的实例并将其添加到您拥有的任何容器中: fileB panel = new fileB(); container.add(panel); 2-如果fileB有一个JPanel作为字段,那

是否可以从另一个java文件将jpanel包含到容器中?假设我有两个java文件
fileA.java
fileB.java
。我想在
fileA.java
的容器中添加
fileB.java
的整个显示内容。这可能吗?只是很长一段时间的困惑。提前谢谢。

是的,你可以

1-如果
fileB
类扩展了
JPanel
,则创建
fileB
的实例并将其添加到您拥有的任何容器中:

fileB panel = new fileB();
container.add(panel);
2-如果
fileB
有一个JPanel作为字段,那么如果它是公共字段,则需要通过它本身访问它,否则需要通过getter方法访问它:

fileB f = new fileB();
JPanel panel = f.getPanel(); // or f.panel if the panel is a public field
container.add(panel);

您可以使另一个文件/cass
扩展JPanel
,然后由于它是JPanel,您可以将它添加到任何其他文件中。例如:

FileA.java

public class FileA {
    public FileA() { 
        JFrame jf = new JFrame();
        jf.setLayout(new BorderLayout());

        FileB b = new FileB();

        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jf.setBounds(100,100,800,600);
        jf.setVisible(true);

        add(b, BorderLayout.CENTER);
    }
    public static void main(String[] args) {
        new FileA();
    }
}
FileB.java

public class FileB extends JPanel {
    public FileB() { 
        setLayout(new BorderLayout());
        add(new JLabel("Example"), BorderLayout.CENTER);
    }
}
或者,您可以简单地将JPanel作为另一个文件中的字段,并使用getter方法访问它

例如:

FileC.java

public class FileC {

    private JPanel panel;

    public FileC() {
        panel = new JPanel();
        panel.add(new JLabel("Example 2"));
    }

    public JPanel getPanel() {
        return panel;
    }

}

什么是“显示内容”?是否要在代码中创建
fileB
对象?还是要在
fileA
对象中显示
fileB.java
中的文本?“显示内容”只是指文件B中的任何元素。假设我在fileB.java中有一个jtextfield,我希望该文本字段显示在fileA.java中。但是当我运行fileA时,在包含新创建的实例的容器中看不到任何内容。它工作得很好。谢谢你的帮助:)很好很简单的解释。非常感谢:)