JAVA学习Swing章节JPanel和JScrollPane面板的简单学习

package com.swing;

import java.awt.Container;
import java.awt.GridLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.WindowConstants;

/**
 * 1:常用面板
 * 面板也是一个Swing容器,他可以看作为容器容纳其他组件,但它也必须被添加到其他容器中
 * Swing中常用的面板包括JPanel面板和JScrollPane面板
 * 
 * 2:JPanel面板可以聚集一些组件来布局
 * 读者首先应该明白面板也是一种容器,因为它继承了java.awt.Container类
 * @author biexiansheng
 *
 */
public class JPanelTest extends JFrame{

    public JPanelTest(){
        Container container=getContentPane();//设置一个容器
        
        //将整个容器设置为2行1列的网格布局     网格布局管理器x,y代表行和列
        container.setLayout(new GridLayout(2,1,10,10));
        
        //初始化一个面板,设置1行3列的网格布局
        JPanel p1=new JPanel(new GridLayout(1,3,10,10));
        JPanel p2=new JPanel(new GridLayout(1,2,10,10));
        JPanel p3=new JPanel(new GridLayout(1,2,10,10));
        JPanel p4=new JPanel(new GridLayout(2,1,10,10));
        
        //在面板中添加按钮
        p1.add(new JButton("1"));
        p1.add(new JButton("2"));
        p1.add(new JButton("3"));
        p2.add(new JButton("4"));
        p2.add(new JButton("5"));
        p3.add(new JButton("6"));
        p3.add(new JButton("7"));
        p4.add(new JButton("8"));
        p4.add(new JButton("9"));
        
        //最重要的一步,将面板实例添加到容器中
        container.add(p1);
        container.add(p2);
        container.add(p3);
        container.add(p4);
        
        //将容器外部特性实例化
        setTitle("JPanel面板的案例");
        setSize(400,250);//设窗体的大小     宽和高
        setVisible(true);//设定窗体的可视化
        //设置窗体的关闭方式
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        JPanelTest jt=new JPanelTest();
    }

}

案例运行结果如下

package com.swing;

import java.awt.Container;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.WindowConstants;

/**
 * 1:设置界面时,可能会遇到在一个较小的容器窗体中显示一个较大部分的内容的情况,这时
 * 可以使用JScrollPane面板
 * 
 * 2:JScrollPane面板是带滚动条的面板,它也是一个面板,但是JScrollPane只能
 * 放置一个组件,并且不可以使用布局管理器
 * 
 * 3:如果需要在JScrollPane面板中放置多个组件,需要将多个组件放置在JPanel面板上,
 * 然后将JPanel作为一个整体组件添加到JScrollPane组件上。
 * 
 * 4:从本实例可以得到在窗体中创建一个带滚动条的文字编辑器,首先需要初始化编辑器,
 * 并且在初始化时完成编译器的大小指定,当创建带滚动条的面板时,将编译器加入面板中
 * ,最后将带滚动条的编译器放置在容器中即可
 * @author biexiansheng
 *
 */
public class JScrollPaneTest extends JFrame{
//导入包的快捷键 shift+ctrl+o
    public JScrollPaneTest(){//定义一个构造方法
        Container container=getContentPane();//创建一个容器
        
        //创建文本区域组件
        JTextArea ta=new JTextArea(20,50);
        
        //创建JScrollPane()面板对象,并将文本域对象添加到面板中
        JScrollPane sp=new JScrollPane(ta);
        
        //将该面板添加到该容器中
        container.add(sp);
        
        //设置容器的外部特性
        setTitle("带滚动条的文字编辑器");//设置窗口的标题文字
        setSize(400,400);//设置窗口的大小
        setVisible(true);//设置可视化
        //设置窗口的关闭方式
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        JScrollPaneTest jp=new JScrollPaneTest();
    }

}

案例运行结果如下

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏别先生

JAVA学习Swing章节按钮组件JButton的简单学习

package com.swing; import java.awt.Container; import java.awt.Dimension; import...

1995
来自专栏ml

初学java之触发响应事件

1 2 import java.awt.*; 3 import javax.swing.*; 4 import java.awt.event.*...

2739
来自专栏数据结构与算法

2596 售货员的难题

2596 售货员的难题 时间限制: 1 s 空间限制: 32000 KB 题目等级 : 钻石 Diamond 题目描述 Description 某...

3376
来自专栏一枝花算不算浪漫

MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作

34110
来自专栏青玉伏案

JavaSE高级之GUI编程

 下面主要用到了java中的swing进行界面设计,当然java的GUI不如C#的设计的好看,不过原理还是要会的。 1. GUI Graphical User ...

1935
来自专栏数据结构与算法

cf1051F. The Shortest Statement(最短路)

由于边数的限制,非树边连接的点不会超过$2*(m - (n - 1)) = 42$个

734
来自专栏Hongten

java开发_快速搜索本地文件_小应用程序

然后我突发奇想,我之前做过一个Application叫做:java开发_java小程序_邮死你(yousini)_源码下载

642
来自专栏数据结构与算法

RNQOJ [stupid]愚蠢的矿工(树形依赖背包)

$f[i][j] = max(f[i + 1][j - w[i]] + val[i], f[i + siz[rev[i]]][j]);$

674
来自专栏Ryan Miao

使用junit测试用例

通常只会使用junit测试非main方法,在我眼里就是程序入口实现而已。今天,发现原来可以测试类。 针对mybatis练习。在需要测试的UserDaoImpl类...

2539
来自专栏数据结构与算法

ZR18提高5解题报告

设$f[i][j]$表示前$i$个位置,前缀和为$j$的方案数,转移的时候该位置放了什么,以及该位置之前的和是多少。

673

扫码关注云+社区