为什么我应该使用 JPanel?
Why I should use a JPanel?
有什么区别:
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?真正的目的是什么?
目的是将组件组合在一起。
例如查看此网页。您可以想象一个垂直放置问题和答案的中心面板,一个包含其他面板的右侧面板:一个用于博客,一个用于工作公告,一个用于相关问题,最后一个用于页脚的南面板。
页脚面板可以在问题页面以外的其他页面中重复使用。
如果将页面分成独立的面板,整个页面的布局更容易理解和实施。
您的两个示例基本上没有视觉差异,但 UI 太差,无法显示差异。 JPanel
正是现实生活中的面板,用于显示其中内容的东西。它通常用于包含要在给定布局中显示的不同元素。
JFrame中可以放置多个JPanel。 JPanel 是您其他组件的容器,可以按逻辑功能对其进行分组。
您可以使用 JPanel
创建用户界面的可重用构建块,并为它的所有实例维护单点维护。假设您要创建一个 JFrame
包含两个文本的差异视图。左视图和右视图可以说是同卵双胞胎。创建面板两次并将这两个面板添加到框架上比直接将所有后续组件两次添加到框架中要容易得多。
每当您现在必须更改视图时,假设您想要添加另一个按钮,或者您可以在面板上执行的任何操作,并且两者 - 左视图和右视图将立即包含更改。
将某些组件组合在一起,以便您可以在循环中操作它们的组。可能是检查某个区域内的所有文本框是否满足特定要求或完全销毁它们。
Why I should use a JPanel?
您使用 JPanel 可获得以下一项或多项好处:
- 将组件组合在一起。
- 为了更好地组织您的组件。
- 使我们能够使用多个布局并组合它们的效果。 (例如
GridLayout
用于数字键盘,CardLayout
用于显示面板,您可以在其中切换绘图)。
- 将大问题分解成子问题。因此,与其在一个大框架中实现所有内容,不如集中实现每个面板的属性(例如布局、尺寸、背景图像、背景颜色等)
- 如果您有自定义面板,可重复使用。一个通用的面板可以被不同的类.
使用
- 便于调试,因为您可以单独测试每个面板。
- 为了可扩展性。
- 为了可维护性。
通常我认为JFrame就像现实生活中的画框,而JPanel就像一张白纸。我们不直接在框架上绘画。相反,我们在一张纸上作画,然后将纸插入框架中。直接在画框上绘画是可能的,但没有人这样做。
JFrame和JPanel也是一样。我们可以直接在frame中添加组件,但是通常是先添加到panel中,然后再将panel添加到frame中。
有什么区别:
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?真正的目的是什么?
目的是将组件组合在一起。
例如查看此网页。您可以想象一个垂直放置问题和答案的中心面板,一个包含其他面板的右侧面板:一个用于博客,一个用于工作公告,一个用于相关问题,最后一个用于页脚的南面板。
页脚面板可以在问题页面以外的其他页面中重复使用。
如果将页面分成独立的面板,整个页面的布局更容易理解和实施。
您的两个示例基本上没有视觉差异,但 UI 太差,无法显示差异。 JPanel
正是现实生活中的面板,用于显示其中内容的东西。它通常用于包含要在给定布局中显示的不同元素。
JFrame中可以放置多个JPanel。 JPanel 是您其他组件的容器,可以按逻辑功能对其进行分组。
您可以使用 JPanel
创建用户界面的可重用构建块,并为它的所有实例维护单点维护。假设您要创建一个 JFrame
包含两个文本的差异视图。左视图和右视图可以说是同卵双胞胎。创建面板两次并将这两个面板添加到框架上比直接将所有后续组件两次添加到框架中要容易得多。
每当您现在必须更改视图时,假设您想要添加另一个按钮,或者您可以在面板上执行的任何操作,并且两者 - 左视图和右视图将立即包含更改。
将某些组件组合在一起,以便您可以在循环中操作它们的组。可能是检查某个区域内的所有文本框是否满足特定要求或完全销毁它们。
Why I should use a JPanel?
您使用 JPanel 可获得以下一项或多项好处:
- 将组件组合在一起。
- 为了更好地组织您的组件。
- 使我们能够使用多个布局并组合它们的效果。 (例如
GridLayout
用于数字键盘,CardLayout
用于显示面板,您可以在其中切换绘图)。 - 将大问题分解成子问题。因此,与其在一个大框架中实现所有内容,不如集中实现每个面板的属性(例如布局、尺寸、背景图像、背景颜色等)
- 如果您有自定义面板,可重复使用。一个通用的面板可以被不同的类. 使用
- 便于调试,因为您可以单独测试每个面板。
- 为了可扩展性。
- 为了可维护性。
通常我认为JFrame就像现实生活中的画框,而JPanel就像一张白纸。我们不直接在框架上绘画。相反,我们在一张纸上作画,然后将纸插入框架中。直接在画框上绘画是可能的,但没有人这样做。
JFrame和JPanel也是一样。我们可以直接在frame中添加组件,但是通常是先添加到panel中,然后再将panel添加到frame中。