在Java中,在一个方法的一个面板中有一个面板是可能的吗?
例如,如果我在一个名为CreatePanel的方法中创建了一个JPanel,我可以在它下面添加另一个吗?我试图在一个方法中添加两个或三个面板,但到目前为止还没有成功。
如果这是不可能的,那么如何创建一个JPanel,比如LeftPanel,并在LeftPanel中添加另一个JPanel呢?
任何关于来源和清晰解释的帮助都将是非常棒的,因为我是Java的初学者,有时你所说的事情对你和所有的CS-jock来说可能是显而易见的,但对我来说却不是。
发布于 2013-05-01 12:25:50
你的问题是可能的,但我认为你通过阅读布局管理器的教程会学到更多,而不是得到答案。请阅读布局管理器和布局组件:)
http://docs.oracle.com/javase/tutorial/uiswing/layout/index.html
发布于 2013-05-01 12:32:17
基本前提将遵循向面板添加任何其他组件的相同工作流程……
你可以这样做...
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;
}你可能想花点时间浏览一下How to create a UI with Swing以获得更多细节...
https://stackoverflow.com/questions/16312647
复制相似问题