0

是否可以在 Java 中的一种方法中在面板中设置面板?

就像如果我在一个JPanel名为的方法中创建了一个CreatePanel,我可以在它下面添加另一个吗?我试图在一种方法中添加两个或三个面板,但到目前为止还没有成功。

如果这是不可能的,你将如何创建一个JPanel,比如说,并在LeftPanel其中添加另一个? JPanelLeftPanel

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

4

2 回答 2

5

您提出的问题是可能的,但我认为您将通过阅读有关布局管理器的教程了解更多信息,而不是给出答案。请阅读布局管理器和布局组件:)

http://docs.oracle.com/javase/tutorial/uiswing/layout/index.html

于 2013-05-01T04:25:50.397 回答
3

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

你可以做类似...

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;

}

更好的解决方案(恕我直言)是将各个责任领域分开并做更多类似的事情......

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;
}

您可能想花一些时间查看如何使用 Swing 创建 UI 以了解更多详细信息...

于 2013-05-01T04:32:16.747 回答