java--GUI--面板组件

面板组件

面板组件不能单独存在,只能放置在顶级窗口容器中。常见的面板组件有两个,分别是JPanel和JScrollPane。

JPanel

1、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);
    }
}

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

两年半的JAVA练习生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值