2

是否可以将 jpanel 从另一个 java 文件包含到容器中?假设我有 2 个 java 文件fileA.javafileB.java. 我想fileB.javafileA.java. 这可能吗?只是一个混乱运行了很长时间。提前致谢。

4

2 回答 2

4

您可以制作其他文件/cass extends JPanel,然后由于它JPanel,您可以将其添加到任何其他文件中。例如:

文件A.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();
    }
}

文件B.java

public class FileB extends JPanel {
    public FileB() { 
        setLayout(new BorderLayout());
        add(new JLabel("Example"), BorderLayout.CENTER);
    }
}

或者您可以简单地将 JPanel 作为另一个文件中的字段并使用 getter 方法访问它。

例子:

文件C.java

public class FileC {

    private JPanel panel;

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

    public JPanel getPanel() {
        return panel;
    }

}
于 2012-07-16T20:52:16.920 回答
3

是的你可以。

1-如果fileBclass extends 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);
于 2012-07-16T20:48:00.103 回答