有什么区别:
public class Test {
public static void main(String[] args) {
JButton button= new JButton("1");
button.setVisible(true);
JPanel panel= new JPanel();
panel.add(button);
panel.setVisible(true);
JFrame frame = new JFrame();
frame.add(panel);
frame.setVisible(true);
frame.pack();
}
}
和
public class Test {
public static void main(String[] args) {
JButton button= new JButton("1");
button.setVisible(true);
JFrame frame = new JFrame();
frame.add(button);
frame.setVisible(true);
frame.pack();
}
}
我知道JPanel是GUI组件的容器,但我真的看不到使用它的实用程序。当然我错了,但我开始使用Swing,所以...为什么我应该使用JPanel?真正的目的是什么?
答案 0 :(得分:3)
您的两个示例基本上没有视觉差异,但UI太差,无法展示差异。 JPanel
正是面板在现实生活中的用途,用于展示其中的内容。它通常用于包含要在给定布局中显示的不同元素。
答案 1 :(得分:3)
为什么我应该使用JPanel?
您使用JPanel获得以下一项或多项好处:
GridLayout
,显示面板为CardLayout
,您可以在其中切换图纸。通常我认为JFrame就像现实生活中的画框,JPanel就像一张白纸。我们不直接在框架上绘画。相反,我们在一张纸上画画,然后将纸张插入画框。可以直接在框架上绘画,但没有人这样做。
JFrame和JPanel也是如此。我们可以直接将组件添加到框架中,但通常我们将其添加到面板中,然后将面板添加到框架中。
答案 2 :(得分:2)
目的是将组件组合在一起。
以此网页为例。您可以想象一个中心面板,其中问题和答案是垂直布局的,右侧面板包含其他面板:一个用于博客,一个用于工作公告,一个用于相关问题,最后一个用于页脚的南面板。
页脚面板可以在问题页面以外的其他页面中重复使用。
如果将页面划分为独立的面板,则整个页面的布局更容易理解和实现。
答案 3 :(得分:2)
您可以在JFrame中放置多个JPanel。 JPanel是您的其他组件的组合者,可以通过逻辑功能对其进行分组。
答案 4 :(得分:2)
您可以使用JPanel
创建用户界面的可重用构建块,并为其所有实例维护单点维护。我们假设您要创建一个包含两个文本的差异视图的JFrame
。左右视图可以说是同卵双胞胎。更容易创建一个面板两次并在框架上添加这两个面板,而不是直接将所有后续组件两次添加到框架中。
每当你现在必须更改视图时,让我们假设您要添加另一个按钮,或者您可以在面板上执行任何操作 - 两个视图 - 左视图和右视图将立即包含更改。
答案 5 :(得分:2)
将某些组件组合在一起,以便您可以在循环中操作它们的组。也许检查区域内的所有文本框是否满足某个要求或完全销毁它们。