GUI编程面板间距间隙的设置及滚动条的实现

1. 上期遗留问题:
1.1 使用 标签 嵌入 ImageIcon 图片 不显示问题

昨天玩的往 JLabel 里面嵌入图片图片没有显示出来,但是也没有报空指针异常,真是奇了个大怪,今天下班回来又好好的扣吃了一会,发现写的逻辑并没有问题。开始还在猜测是不是因为 标签的属性也要设置一下,比如可见性之类的,但是设置了发现没还用,后来又往容器里面嵌,怎么搞也是不出来,emm… 于是在博客上发了个提问。… 这个遗留问题我一定会解决,而且我的路径 没问题啊,debug 跑的时候,路径能读到的。

2. 练习布局方式的间距设置

我们先来看一下效果图:(因为代码没有难度,只不过是之前用的方法,其中有个两个参数没有设置,今天学习到这里我们可以接触的了的水平了,就设置上了)

在这里插入图片描述
我设置的效果是长这个样子的,不管怎么设置,我们可以看到每个面板之间是有一个白色的间距间隙的。很好实现,这个调用方法,给两个参数,然后正常写代码就好了,下面把代码帖出来

package com.Swing.JFrame;

import javax.swing.*;
import java.awt.*;

public class Test04ButtonSpace_between extends JFrame {

    public static void main(String[] args) {
        new Test04ButtonSpace_between("间距设置的效果测试");
    }

    public Test04ButtonSpace_between(String title){
        super.setTitle(title);
        //先获取容器,然后我们把面板添加到容器里,再从面板中嵌入按钮 进行间距设置的测试

        //不继承 JFrame 是调不到获取容器的方法的
        Container contentPane = this.getContentPane();

        //设置布局,布局方式为:表格布局
        contentPane.setLayout(new GridLayout(2,1,10,10));
        //rows:两行   cols:一列   hgap:横间隙   vgap:纵间距



        //开始设置面板
        Panel p1 = new Panel(new GridLayout(1,3));
        //一行三列,可以添加三个按钮
        p1.add(new JButton("1"));
        p1.add(new JButton("2"));
        p1.add(new JButton("3"));

        Panel p2 = new Panel(new GridLayout(1, 2));
        //一行两列,可以添加两个按钮
        p2.add(new JButton("4"));
        p2.add(new JButton("5"));

        Panel p3 = new Panel(new GridLayout(2, 1));
        //两行一列,可以添加两个按钮
        p3.add(new JButton("6"));
        p3.add(new JButton("7"));

        Panel p4 = new Panel(new GridLayout(3, 2));
        //三行两列,可以添加 3*2 =6个按钮
        p4.add(new JButton("8"));
        p4.add(new JButton("8"));
        p4.add(new JButton("8"));
        p4.add(new JButton("8"));
        p4.add(new JButton("8"));
        p4.add(new JButton("8"));

        //设置好了,添加到容器当中
        contentPane.add(p1);
        contentPane.add(p2);
        contentPane.add(p3);
        contentPane.add(p4);


        //设置可见,弹出位置及大小,关闭按钮
        this.setVisible(true);
        this.setBounds(220,220,600,440);
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }

}

3. JScrollPanel 滚动条

学习完了间距间隙设置,来玩滚动条。

我们先来看一下效果图,首先说明,在容器中放入面板,面板中嵌入可换行的文本域。这些全部设置好之后,当窗口容器缩放到一定尺寸,会有滚动条效果

在这里插入图片描述

然后在来看一下代码,碎角片细节内容,一如既往,注释在代码当中了

package com.Swing.JFrame;

import javax.swing.*;
import java.awt.*;

public class Test05JScrollPanel extends JFrame {

    public static void main(String[] args) {
        new Test05JScrollPanel();
    }

    public Test05JScrollPanel(){
        Container contentPane = this.getContentPane();

        //创建可换行的文本域对象
        TextArea textArea = new TextArea(20,50);
        textArea.setText("我是一只爱学习的兔C");

        //创建带有滚动条的面板对象
        JScrollPane jScrollPane = new JScrollPane(textArea);
        contentPane.add(jScrollPane);

        this.setVisible(true);
        this.setBounds(220,220,600,420);
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
}

注意一下,使用文本域对象要设置尺寸的,不要直接在调用的构造中传入文本内容,我一上来就是那么写的, 结果运行之后什么也没有。
其次就是 面板对象,构造参数中可以直接传入文本域对象。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

兔C

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

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

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

打赏作者

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

抵扣说明:

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

余额充值