欢迎访问服务百科信息网!
首页 >科技 >JPanel
JPanel

JPanel

(JPanel)
JPanel是Java图形用户界面(GUI)工具包swing中的面板容器类,包含在javax.swing包中,是一种轻量级容器,可以加入到JFrame窗体中。JPanel默认的布局管理器是FlowLayout,其自身可以嵌套组合,在不同子容器中可包含其他组件(component),如JButton、JTextArea、JTextField等,功能是对窗体上的这些控件进行组合,相当于C++和C#中的Panel类。
JPanel资料
  • 中文名:Java面板容器
  • 外文名:JPanel
  • 定义:Java GUI工具包中的一个容器类
  • 词性:名词
  • 所属包:javax.swing
  • 简介

    可以进行嵌套,功能是对窗体中具有相同逻辑功能的组件进行组合。

    所有已实现的接口

    ImageObserver, MenuContainer, Serializable, Accessible

    直接已知子类

    AbstractColorChooserPanel, JSpinner.DefaultEditor

    JPanel 是一般轻量级容器.[1]

    使用方法

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

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

    设置图层管理器

    和其他容器(container)一样,面板容器 panel 也使用布局管理器(Layout Manager)对添加到容器中的组件(compnent)进行定位和设置尺寸大小。默认情况下,面板容器的布局管理器是FlowLayout(流式布局)类的一个实例,这个类对放置在容器中的空间按行进行布局(从左到右诸行排列)。在创建面板容器时,你可以轻松地使用任何其他布局管理器通过调用setLayout方法或指定一个布局管理器。

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

    1

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

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

    1

    2

    JPanel p = new JPanel();

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

    添加控件

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

    1

    2

    aFlowPanel.add(aComponent);

    aFlowPanel.add(anotherComponent);

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

    1

    2

    aBorderPanel.add(aComponent, BorderLayout.CENTER);

    aBorderPanel.add(anotherComponent, BorderLayout.PAGE_END);

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

    1

    2

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

    GridBagConstraints c = new GridBagConstraints();

    警告

    Swing 不是线程安全的。

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

    构造方法

    JPanel() 创建具有双缓冲和流布局的新 JPanel。

    JPanel(boolean isDoubleBuffered) 创建具有 FlowLayout 和指定缓冲策略的新JPanel。

    JPanel(LayoutManager layout) 创建具有指定布局管理器的新缓冲 JPanel。

    JPanel(LayoutManager layout, boolean isDoubleBuffered) 创建具有指定布局管理器和缓冲策略的新 JPanel

    参考资料

    [1] The Java™ Tutorials- Class JPanel · Oracle[引用日期2015-08-20]

    [2] The Java™ Tutorials-How to Use Panels · Oracle[引用日期2015-08-20]

    [3] 二十九、Java图形化界面设计——布局管理器之FlowLayout(流式布局) · CSDN博客[引用日期2015-08-20]

  • 上一篇百科:meshgrid
  • 下一篇百科:implements