Java-GUI-Example10
- JPanel
JPanel面板组件:无边框,不能被移动、放大、缩小或关闭的面板。
JPanel面板组件的默认不足管理器是FlowLayout。可以使用JPanel带参数的构造函数JPanel(LayoutManager Layout)或者setLayout()方法制定布局管理器。
- JScrollPane
JScrollPane:带有滚动条的面板容器。
JScrollPane:只能添加一个组件,添加多个组件时,应先将多个组件添加到某个组件中。
方法声明 | 功能描述 |
JScrollPane() | 创建一个空的JScrollPane面板 |
JScrollPane(Component view) | 创建一个显示指定组件的JScrollPane面板,只要组件的内容超过视图大小就会显示水平和垂直滚动条 |
JScrollPane(Component view,int vsbPolicy,int hsbPolicy) | 创建一个显示制定容器,并具有制定滚动条策略的JScrollPane。参数vsbPolicy和hsbPolicy分别表示垂直滚动条策略和水平滚动条策略。 |
方法声明 | 功能描述 |
void setHorizontalBarPolicy(int policy) | 指定水平滚动条策略,即水平滚动条何时显示在滚动面板上 |
void setVerticalBarPolicy(int policy) | 指定垂直滚动条策略,即垂直滚动条何时显示在滚动面板上 |
void setViewportView(Component view) | 设置在滚动面板显示的组件 |
常量属性 | 功能描述 |
VERTICAL_SCROLLBAR_AS_NEEDED HORIZONTAL_SCROLLBAR_AS_NEEDED |
当填充的组件视图超过客户端窗口大小时,自动显示水平和竖直放行滚动条(JScrollPane组件的默认值) |
VERTICAL_SCROLLBAR_ALWAYS HORIZONTAL_SCROLLBAR_ALWAYS |
无论填充的组件视图大小,始终显示水平和竖直放行滚动条 |
VERTICAL_SCROLLBAR_NEVER HORIZONTAL_SCROLLBAR_NEVER |
无论填充的组件视图大小,始终不显示水平和竖直放行滚动条 |
Example10.java
1 package GUI; 2 import java.awt.*; 3 import javax.swing.*; 4 public class Example10 { 5 private static void createAndShowGUI() { 6 //1.创建一个JFrame容器窗口 7 JFrame f=new JFrame("PanelDemo"); 8 f.setLayout(new BorderLayout()); 9 f.setSize(350,200); 10 f.setLocation(300,200); 11 f.setVisible(true); 12 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 13 //2.创建JScrollPane滚动面板组件 14 JScrollPane scrollPane=new JScrollPane(); 15 //设置水平滚动条策略--滚动条需要时显示 16 scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); 17 //设置垂直滚动条策略--滚动条一直显示 18 scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); 19 //3.定义一个JPanel面板组件 20 JPanel panel=new JPanel(); 21 //在JPanel面板中添加四个按钮 22 panel.add(new JButton("按钮1")); 23 panel.add(new JButton("按钮2")); 24 panel.add(new JButton("按钮3")); 25 panel.add(new JButton("按钮4")); 26 //设置JPanel面板在滚动面板JScrollPane中显示 27 scrollPane.setViewportView(panel); 28 //4.向JFrame容器窗口中添加JScrollPane滚动面板组件 29 f.add(scrollPane,BorderLayout.CENTER); 30 } 31 public static void main(String[] args) { 32 //使用SwingUtilities工具类调用createAndShowGUI()方法并显示GUI程序 33 SwingUtilities.invokeLater(Example10::createAndShowGUI); 34 } 35 }
效果: