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 条评论
登录 后参与评论

相关文章

来自专栏闻道于事

js登录滑动验证,不滑动无法登陆

js的判断这里是根据滑块的位置进行判断,应该是用一个flag判断 <%@ page language="java" contentType="text/html...

8498
来自专栏转载gongluck的CSDN博客

cocos2dx 打灰机

#include "GamePlane.h" #include "PlaneSprite.h" #include "BulletNode.h" #include...

7026
来自专栏张善友的专栏

Mix 10 上的asp.net mvc 2的相关Session

Beyond File | New Company: From Cheesy Sample to Social Platform Scott Hansel...

2767
来自专栏一个爱瞎折腾的程序猿

sqlserver使用存储过程跟踪SQL

USE [master] GO /****** Object: StoredProcedure [dbo].[sp_perfworkload_trace_s...

2830
来自专栏大内老A

The .NET of Tomorrow

Ed Charbeneau(http://developer.telerik.com/featured/the-net-of-tomorrow/) Exciti...

38410
来自专栏pangguoming

Spring Boot集成JasperReports生成PDF文档

由于工作需要,要实现后端根据模板动态填充数据生成PDF文档,通过技术选型,使用Ireport5.6来设计模板,结合JasperReports5.6工具库来调用渲...

1.4K7
来自专栏杨龙飞前端

scrollto 到指定位置

2934
来自专栏芋道源码1024

熔断器 Hystrix 源码解析 —— 断路器 HystrixCircuitBreaker

本文主要基于 Hystrix 1.5.X 版本 1. 概述 2. HystrixCircuitBreaker 3. HystrixCircuitBreaker....

5747
来自专栏魂祭心

原 canvas绘制clock

5074
来自专栏一个会写诗的程序员的博客

Spring Reactor 项目核心库Reactor Core

Non-Blocking Reactive Streams Foundation for the JVM both implementing a Reactiv...

2752

扫码关注云+社区