是否包含来自外部java文件的面板?
是否可以从另一个java文件将jpanel包含到容器中?假设我有两个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作为字段,那
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时,在包含新创建的实例的容器中看不到任何内容。它工作得很好。谢谢你的帮助:)很好很简单的解释。非常感谢:)