jpanel是什么?

JPanel 是 Java图形用户界面(GUI)工具包swing中的面板容器类,包含在javax.swing 包中,是一种轻量级容器,可以加入到JFrame窗体中;可以进行嵌套,功能是对窗体中具有相同逻辑功能的组件进行组合。

JPanel默认的布局管理器是FlowLayout,其自身可以嵌套组合,在不同子容器中可包含其他组件(component),如JButton、JTextArea、JTextField 等,功能是对窗体上的这些控件进行组合,相当于C++和C#中的Panel类。

使用方法

JPanel 可以为添加到窗体中的轻型控件提供通用的容器。默认情况下,面板容器不会向控件添加任何除自身背景之外的颜色,但是,可以轻松地向其添加边框(borders) 并根据需要改制样式。

在大多数Java GUI外观体验(look and feel)中,面板容器默认是不透明。不透明的面板容器跟普通的目录窗格功能差别不大,并且可以有效帮助样式改进。

设置图层管理器

和其他容器(container)一样,面板容器 panel 也使用布局管理器(Layout Manager)对添加到容器中的组件(compnent)进行定位和设置尺寸大小。默认情况下,面板容器的布局管理器是FlowLayout(流式布局)类的一个实例,这个类对放置在容器中的空间按行进行布局(从左到右诸行排列)。

在创建面板容器时,你可以轻松地使用任何其他布局管理器通过调用setLayout方法或指定一个布局管理器。

如下是一个在创建面板容器时设置图层管理器的例子:

JPanel p = new JPanel(new BorderLayout());

但这种方法不能用在BoxLayout(盒子布局)中,因为BoxLayout 构造器需要一个预留(pre-existing)容器。如下所示:

JPanel p = new JPanel();
p.setLayout(new BoxLayout(p, BoxLayout.PAGE_AXIS));

添加控件

向面板容器中添加组件时使用add()方法,而向add()方法中传递的参数决定于该面板容器使用哪个布局管理器。当所用的布局管理器是FlowLayout,BoxLayout,GridLayout,或SpringLayout 时,像通常那样向add()方法传递单一的参数即可,如下所示: [2]

aFlowPanel.add(aComponent);
aFlowPanel.add(anotherComponent);

而当布局管理器为BorderLayout时,还需要提供另一个参数来指定添加到容器中控件的位置,例如:

aBorderPanel.add(aComponent, BorderLayout.CENTER);
aBorderPanel.add(anotherComponent, BorderLayout.PAGE_END);

对于GridBagLayout布局管理器,可以使用上述任一方法,但必须以某种方式对每个组件指定GridBagConstraints,例如:

JPanel pane = new JPanel(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();

警告

Swing 不是线程安全的。

此类的序列化对象与以后的 Swing 版本不兼容。当前序列化支持适用于短期存储,或适用于在运行相同 Swing 版本的应用程序之间进行 RMI(Remote Method Invocation,远程方法调用)

更多web开发知识,请查阅 HTML中文网 !!

以上就是jpanel是什么?的详细内容,更多请关注易知道|edz.cc其它相关文章!

推荐阅读