当前位置: 首页 > news >正文

用java在JPanel中建一个表格_java常用面板(JPanel、JScrollPane)

面板也是一个Swing容器,可以作为容器容纳其他组件,但它必须被添加到其他容器中,Swing中常用的面板包括JPanel面板以及JScrollPane面板,下面分别讲解Swing中的常用面板

JPanel面板

JPanel面板是一种容器,继承自java.awt.Container类,JPanel面板可以聚集一些组件来布局,但必须依赖于JFrame窗体进行使用,下面一个例子讲解JPanel面板使用方法,代码如下:

import java.awt.BorderLayout;

import java.awt.Container;

import java.awt.GridLayout;

import javax.swing.BorderFactory;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.WindowConstants;

public class Demo extends JFrame {

public JPanelTest() {

Container c = getContentPane();

// 将整个容器设置为2行1列的网格布局,组件水平间隔10像素,垂直间隔10像素

c.setLayout(new GridLayout(2, 1, 10, 10));

// 初始化一个面板,此面板使用1行3列的网格布局,组件水平间隔10像素,垂直间隔10像素

JPanel p1 = new JPanel(new GridLayout(1, 3, 10, 10));

JPanel p2 = new JPanel(new BorderLayout()); // 使用边界布局

JPanel p3 = new JPanel(new GridLayout(1, 2, 10, 10));

JPanel p4 = new JPanel(new GridLayout(2, 1, 10, 10));

// 给每个面板都添加边框和标题,使用BorderFactory工厂类生成带标题的边框对象

p1.setBorder(BorderFactory.createTitledBorder("面板1"));

p2.setBorder(BorderFactory.createTitledBorder("面板2"));

p3.setBorder(BorderFactory.createTitledBorder("面板3"));

p4.setBorder(BorderFactory.createTitledBorder("面板4"));

// 在面板中添加按钮

p1.add(new JButton("b1"));

p1.add(new JButton("b1"));

p1.add(new JButton("b1"));

p1.add(new JButton("b1")); // 1行3列基础上,仍然可以添加组件

p2.add(new JButton("b2"), BorderLayout.WEST);

p2.add(new JButton("b2"), BorderLayout.EAST);

p2.add(new JButton("b2"), BorderLayout.NORTH);

p2.add(new JButton("b2"), BorderLayout.SOUTH);

p2.add(new JButton("b2"));

p3.add(new JButton("b3"));

p3.add(new JButton("b3"));

p4.add(new JButton("b4"));

p4.add(new JButton("b4"));

// 在容器中添加面板

c.add(p1);

c.add(p2);

c.add(p3);

c.add(p4);

setTitle("在这个窗体中使用了面板");

setSize(500, 300);

setVisible(true);

setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); // 关闭动作

}

public static void main(String[] args) {

new Demo();

}

}

返回结果:

7909ec5bc787303bcbee4dc2808904b8.png

JScrollPane滚动面板

在设置页面时,可能会遇到在一个较小的容器中显示一个较大的内容情况,这时可以使用JScrollPane面板,JScrollPane面板是带滚动条的面板,它也是一种容器,但是JScrollPane中只能放置一个组件,并且不可以使用布局管理器,如果需要在JScrollPane面板中放置多个组件,需要将多个组件放置在JPanel面板上,然后将Jpanel面板作为一个整体组件添加到JScrollPane组件上。

下面是一个使用JScrollPane面板来实现滚动条的文字编辑器实例,代码如下:

import java.awt.Container;

import javax.swing.JFrame;

import javax.swing.JScrollPane;

import javax.swing.JTextArea;

import javax.swing.WindowConstants;

public class Demo extends JFrame {

public Demo() {

Container c = getContentPane(); // 创建容器

// 创建文本区域组件,文本域默认大小为20行、50列

JTextArea ta = new JTextArea(20,50);

// 创建JScrollPane滚动面板,并将文本域放到滚动面板中

JScrollPane sp = new JScrollPane(ta);

c.add(sp); // 将该面板添加到该容器中

setTitle("带滚动条的文字编译器");

setSize(200, 200);

setVisible(true);

setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);

}

public static void main(String[] args) {

new Demo();

}

}

返回结果:

a819ffe896b1d37d5306faca0c62c281.png

相关文章:

  • map在Java集合_Java 集合 -- Map
  • jquery给日期赋值_jQuery 取值、赋值的基本方法整理
  • java 内部类定于_搞懂 JAVA 内部类
  • java二分法选相关择题_Java考试-2018年全国计算机二级考试精选习题及答案
  • java 表格类_Java动态表格类(DyTable)
  • mysql zhs16gbk_ASM磁盘组剔盘、加盘实施过程
  • java 实现动态验证码_java Servlet 实现动态验证码图片示例
  • Java多线程实现的四种方式_多线程实现的四种方式
  • plot python 修改属性_详解Matplotlib绘图之属性设置
  • ajax传值 vue_vue2.0 axios post请求传参问题(ajax请求)
  • ant构建 java标签用法_Ant构建
  • java readshort_short readShort
  • php读取文本写入数据库,PHP读取TXT文件写入数据库
  • 游戏抽奖网站用java怎么做,Java实现游戏抽奖算法
  • 重载与过载 php,PHP中的重载与接口
  • hexo+github搭建个人博客
  • 10个最佳ES6特性 ES7与ES8的特性
  • CAP 一致性协议及应用解析
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • ECS应用管理最佳实践
  • Markdown 语法简单说明
  • PHP 7 修改了什么呢 -- 2
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • PHP的Ev教程三(Periodic watcher)
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • XForms - 更强大的Form
  • 理清楚Vue的结构
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 试着探索高并发下的系统架构面貌
  • 一个完整Java Web项目背后的密码
  • 异常机制详解
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • hi-nginx-1.3.4编译安装
  • UI设计初学者应该如何入门?
  • 通过调用文摘列表API获取文摘
  • ​ssh免密码登录设置及问题总结
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • # .NET Framework中使用命名管道进行进程间通信
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • #基础#使用Jupyter进行Notebook的转换 .ipynb文件导出为.md文件
  • $$$$GB2312-80区位编码表$$$$
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (MIT博士)林达华老师-概率模型与计算机视觉”
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (附源码)计算机毕业设计SSM教师教学质量评价系统
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (接口自动化)Python3操作MySQL数据库
  • (三)docker:Dockerfile构建容器运行jar包
  • (十六)一篇文章学会Java的常用API
  • (译)计算距离、方位和更多经纬度之间的点
  • (转)shell调试方法
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务