面板组件不能单独存在,只能放置在顶级窗口容器中。常见的面板组件有两个,分别是JPanel和JScrollPane。
JPanel1、JPanel面板组件是一个无边框,不能被移动、不能放大,缩小、不能关闭的面板,它的默认布局管理器是FlowLayout。
2、构造方法:JPanel(LayoutManager layout)设置JPanel布局管理器。
例:
package com.company.www; import javax.swing.*; import java.awt.*; public class frame { public static void GUI() { Jframe frame = new Jframe("frame"); frame.setSize(1000, 800); frame.setVisible(true); frame.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE); JPanel panel = new JPanel(new GridLayout(2, 2, 10, 10)); JButton btn1 = new JButton("1"); JButton btn2 = new JButton("2"); JButton btn3 = new JButton("3"); JButton btn4 = new JButton("4"); panel.add(btn1); panel.add(btn2); panel.add(btn3); panel.add(btn4); frame.add(panel); } public static void main(String[] args) { SwingUtilities.invokeLater(frame::GUI); } }JScrollPane
1、JScrollPane是一个带有滚动条的面板,面板上只能添加一个组件。(如果想向JScrollPane面板中添加多个组件,应该先把多个组件添加到某个组件中,然后再将这个组件添加到JScrollPane中)。
2、构造方法:
JScrollPane() 创建一个空的JScrollPane面板
JScrollPane(Component view) 创建一个显示指定组件的JScrollPane面板,如果组件的内容超过视图大小就会显示水平或垂直滚动条。
JScrollPane(Component view, int vsbPolicy, int hsbPolicy) 创建一个显示指定容器、有指定滚动条策略的滚动面板。
3、属性
VERTICAL_SCROLLBAR_AS_NEEDED HORIZONTAL_SCROLLBAR_AS_NEEDED
当填充的组件视图超过窗口大小的时候,自动显示水平和竖直滚动条(JscrollPane组件的默认值)
VERTICAL_SCROLLBAR_ALWAYS HORIZONTAL_SCROLLBAR_ALWAYS
无论填充的组件视图大小,始终显示水平和竖直滚动条。
VERTICAL_SCROLLBAR_NEVER HORIZONTAL_SCROLLBAR_NEVER
无论填充的组件视图大小,始终不显示水平和竖直滚动条。
4、成员方法:
void setHorizontalBarPolicy(int policy) 指定水平滚动条何时显示在滚动面板上。
void setVerticalBarPolicy(int policy) 指定垂直滚动条何时显示在滚动面板上。
void setViewportView(Component view) 设置在滚动面板显示的组件。
例:
package com.company.www; import javax.swing.*; import java.awt.*; public class frame { public static void GUI() { Jframe frame = new Jframe("frame"); frame.setSize(500, 300); frame.setVisible(true); frame.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE); JScrollPane jsp = new JScrollPane(); // 设置垂直滚动条策略--滚动条需要时显示 jsp.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); // 设置水平滚动条策略--滚动条需要时显示 jsp.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); JPanel panel = new JPanel(); panel.add(new JButton("1")); panel.add(new JButton("2")); panel.add(new JButton("3")); panel.add(new JButton("4")); // 设置JPanel面板在滚动面板JScrollPane中显示 jsp.setViewportView(panel); // 向Jframe容器窗口中添加JScrollPane滚动面板组件 frame.add(jsp, BorderLayout.CENTER); } public static void main(String[] args) { SwingUtilities.invokeLater(frame::GUI); } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)