Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.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 JPanel中的JPanel_Java_Swing_Jpanel_Awt_Layout Manager - Fatal编程技术网

Java JPanel中的JPanel

Java JPanel中的JPanel,java,swing,jpanel,awt,layout-manager,Java,Swing,Jpanel,Awt,Layout Manager,在Java中,是否可以在一个方法中的一个面板中包含一个面板 比如,如果我在一个名为CreatePanel的方法中创建了一个JPanel,我可以在它下面再添加一个吗?我试图在一个方法中添加两个或三个面板,但迄今为止还没有成功 如果不可能,您将如何创建JPanel,比如LeftPanel,并在LeftPanel中添加另一个JPanel 任何关于源代码的帮助和清晰的解释都将是非常棒的,因为我是Java初学者,有时你说的话对你和所有的CS运动员来说可能是显而易见的,但对我来说不是。你问的是可能的,但我想

在Java中,是否可以在一个方法中的一个面板中包含一个面板

比如,如果我在一个名为
CreatePanel
的方法中创建了一个
JPanel
,我可以在它下面再添加一个吗?我试图在一个方法中添加两个或三个面板,但迄今为止还没有成功

如果不可能,您将如何创建
JPanel
,比如
LeftPanel
,并在
LeftPanel
中添加另一个
JPanel


任何关于源代码的帮助和清晰的解释都将是非常棒的,因为我是Java初学者,有时你说的话对你和所有的CS运动员来说可能是显而易见的,但对我来说不是。

你问的是可能的,但我想你会通过阅读关于布局管理器的教程学到更多,而不是得到答案。请阅读布局管理器和布局组件:)


基本前提将遵循相同的工作流程,向面板添加任何其他组件

你可以做一些像

public JPanel createMasterPane() {

    JPanel master = new JPanel(new BorderLayout());

    JPanel leftPane = new JPanel();
    leftPane.add(new JLabel("Left"));

    master.add(leftPane, BorderLayout.WEST);

    JPanel rightPanel = new JPanel();
    rightPanel.add(new JLabel("Right"));
    master.add(rightPanel, BorderLayout.EAST);

    return master;

}
一个更好的解决方案(IMHO)是将各个责任领域分开,并做类似的事情

public JPanel createLeftPane() {
    JPanel leftPane = new JPanel();
    leftPane.add(new JLabel("Left"));
    return leftPane;
}

public JPanel createRightPane() {
    JPanel rightPanel = new JPanel();
    rightPanel.add(new JLabel("Right"));
    return rightPanel;
}

public JPanel createMasterPane() {
    JPanel master = new JPanel(new BorderLayout());

    master.add(createLeftPane(), BorderLayout.WEST);
    master.add(createRightPane(), BorderLayout.EAST);

    return master;
}
您可能想花一些时间查看更多详细信息