Java Swing界面 示例代码+效果

news2024/10/6 14:39:06

1.Swing

轻量级组件,由java编写

2.常用窗口

2.1 JFrame

JFrame是一个容器,是一个顶层窗口

常用方法:

setSize(int width, int height);
setLocation(int x, int y);//窗口距离屏幕左上角位置,默认(0,0)
setBounds(int x,int y,int width,int height) //设置窗⼝的初始位置是(a,b),窗⼝的宽是width,⾼是height。
setVisible(boolean b);//窗口是否可见,默认不可见
setResizable(boolean b);//窗口能否调整大小,默认可调整

JFrame的关闭方式

setDefaultCloseOperation(int op)

设置单击窗口右上角的×号后程序会如何处理,有以下四种:

DO_NOTHING_ON_CLOSE //什么也不做
HIDE_ON_CLOSE //隐藏当前窗⼝
DISPOSE_ON_CLOSE //隐藏当前窗⼝,并释放窗体占有的其他资源
EXIT_ON_CLOSE //结束窗⼝所在的应⽤程序

示例:

public class JFrameTest {
    public static void main(String[] args) {
        JFrame jf = new JFrame("JFrame");//创建窗口标题为JFrame的窗口框架
        jf.setSize(400, 300);//设置窗口大小,setSize(x, y)
        jf.setLocationRelativeTo(null);//设置窗口默认居中显示
        jf.setVisible(true);//设置窗口可见
        jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

    }
}

2.2 JDialog

是从一个窗口弹出的另外一个窗口

构造函数:

JDialog();
JDialog(Frame f); // 指定⽗窗⼝
JDialog(Frame f, String title); // 指定⽗窗⼝ + 标题

常用来配合事件监听器,如点击注册按钮后,主窗口旁边弹出一个注册窗口。

常用方法:与JFrame类似。

3.常用面板

面板,一种容器,可以向容器中添加其他组件,但是它本身需已经被加入一个容器中。

3.1 JPanel

类:JPanel

构造方法:

JPanel();//默认布局管理,FlowLayout
JPanel(LayoutManagerLayout layout);//创建指定布局管理的面板

示例:

public class JFrameTest {
    public static void main(String[] args) {
        JFrame jf = new JFrame("JFrame");
        jf.setSize(400, 300);
        jf.setLocationRelativeTo(null);
        jf.setVisible(true);
        jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

        JPanel jp = new JPanel();
        JButton jb1 = new JButton("button1");
        JButton jb2 = new JButton("button2");

        jp.add(jb1); jp.add(jb2);//将按钮添加进面板中
        jf.add(jp);//再将面板添加进窗口这个容器
    }
}

在这里插入图片描述

4.常用组件

4.4单选按钮组件

类:JRadioButton ButtonGroup

说明:单选按钮,需要将按钮加入到按钮组中,否则无法单选

示例:

        JFrame jf = new JFrame("JFrame");
        jf.setLayout(new FlowLayout());
        jf.setSize(600, 400);
        jf.setLocationRelativeTo(null);
        jf.setVisible(true);
        jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

        JRadioButton jrb = new JRadioButton("男");
        JRadioButton jrb2 = new JRadioButton("女");
        ButtonGroup group = new ButtonGroup();
        group.add(jrb);
        group.add(jrb2);

        jf.add(jrb);
        jf.add(jrb2);

在这里插入图片描述

4.5复选按钮

类:JCheckBox

示例:

        JFrame jf = new JFrame("JFrame");
        jf.setLayout(new FlowLayout());
        jf.setSize(600, 400);
        jf.setLocationRelativeTo(null);
        jf.setVisible(true);
        jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

        JCheckBox jcb = new JCheckBox("编程");
        JCheckBox jcb2 = new JCheckBox("睡觉");
        JCheckBox jcb3 = new JCheckBox("上课");

        jf.add(jcb);
        jf.add(jcb2);
        jf.add(jcb3);

在这里插入图片描述

4.6下拉列表组件

类:JComboBox

方法:addItem

示例:

        JFrame jf = new JFrame("JFrame");
        jf.setLayout(new FlowLayout());
        jf.setSize(600, 400);
        jf.setLocationRelativeTo(null);
        jf.setVisible(true);
        jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

        JComboBox box = new JComboBox();
        box.addItem("--请选择学历--");
        box.addItem("高中");
        box.addItem("大学");
        box.addItem("研究生");
        jf.add(box);

在这里插入图片描述

4.7菜单栏

创建菜单条:JMenuBar

创建菜单:JMenu

创建菜单项:JMenuItem

总结:菜单项添加到菜单中,菜单添加到菜单条中。

示例:

        JMenuBar bar = new JMenuBar();
        JMenu menu1 = new JMenu("菜单一");
        JMenu menu2 = new JMenu("菜单二");
        JMenu menu3 = new JMenu("菜单三");
        JMenuItem item1 = new JMenuItem("选项一");
        JMenuItem item2 = new JMenuItem("选项二");
        JMenuItem item3 = new JMenuItem("选项三");
        JMenuItem item4 = new JMenuItem("选项三");
        JMenuItem item5 = new JMenuItem("选项三");
        JMenuItem item6 = new JMenuItem("选项三");

        menu1.add(item1);
        menu1.add(item2);
        menu1.add(item3);
        menu2.add(item4);
        menu2.add(item5);
        menu3.add(item6);
        bar.add(menu1);
        bar.add(menu2);
        bar.add(menu3);
        jf.add(bar);

在这里插入图片描述

4.8文本组件

类:JTextField

构造方法:

JTextField();
JTextField(String txt); //指定默认文字
JTextField(int fieldWidth); //指定文本框长度
JTextField(String txt, int fieldWidth);

示例:

        JTextField txt = new JTextField(22);
        JLabel lable = new JLabel("账号");
        jf.add(lable);
        jf.add(txt);

在这里插入图片描述

4.9密码框组件

JPasswordField

构造方法:同文本组件

其他方法:setEchoChar(),默认为黑点

示例:

        JPasswordField pswd = new JPasswordField("",20);
        JLabel lable2 = new JLabel("密码");
        jf.add(lable2);
        jf.add(pswd);

在这里插入图片描述

4.10文本域组件

JTextArea

构造方法:

JTextArea();
JTextArea(String txt);
JTextArea(int rows, int cols);//行列

其他方法:

setLineWrap();//设置文本是否自动换行
getText();//获取文本

示例:

        JTextArea area = new JTextArea(10,40);
        area.setLineWrap(true);
        jf.add(area);

在这里插入图片描述

5.常用布局

5.1流布局

所有组件就像流一样,一个个排放,一行放满了放下一行。默认下,组件居中排列的。

构造方法:

FlowLayout();
FlowLayout(int aligment);
//默认为FlowLayout.CENTER,一般设置为FlowLayout.LEFT

aligemnt取值:
FlowLayout.LEFT = 0
FlowLayout.CENTER = 1
FlowLayout.RIGHT = 2

通过setLayout()设置布局,

示例:

        JFrame jf = new JFrame("JFrame");
        jf.setLayout(new FlowLayout(FlowLayout.LEFT));
        jf.setSize(600, 600);
        jf.setLocationRelativeTo(null);
        jf.setVisible(true);
        jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

        JButton jb1 = new JButton("A");
        JButton jb2 = new JButton("B");
        JButton jb3 = new JButton("C");
        JButton jb4 = new JButton("D");
        JButton jb5 = new JButton("E");

        jf.add(jb1);
        jf.add(jb2);
        jf.add(jb3);
        jf.add(jb4);
        jf.add(jb5);

在这里插入图片描述

5.2边界布局

该布局是默认的布局方式,将容器分成了东西南北中五个区域

1.在new的时候指定内容

2.在给JFrame容器add组件时指定边界。

示例:

        JFrame jf = new JFrame("JFrame");
        jf.setLayout(new BorderLayout());//这里注意设置为边界布局
        jf.setSize(600, 600);
        jf.setLocationRelativeTo(null);
        jf.setVisible(true);
        jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

        JButton jb1 = new JButton("北");
        JButton jb2 = new JButton("东");
        JButton jb3 = new JButton("南");
        JButton jb4 = new JButton("西");
        JButton jb5 = new JButton("中");

        jf.add(jb1, BorderLayout.NORTH);
        jf.add(jb2, BorderLayout.EAST);
        jf.add(jb3, BorderLayout.SOUTH);
        jf.add(jb4, BorderLayout.WEST);
        jf.add(jb5, BorderLayout.CENTER);

在这里插入图片描述

5.3网格布局

将容器划分为网络,所有组件按照行和列排列

构造方法:

GridLayout(int rows, int cols);
GridLayout(int rows, int cols, int horizGap, int vertGap);//水平间隔,垂直间隔

示例:

        JFrame jf = new JFrame("JFrame");
        jf.setLayout(new GridLayout(3, 3, 10, 10));
        jf.setSize(600, 600);
        jf.setLocationRelativeTo(null);
        jf.setVisible(true);
        jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

        JButton jb1 = new JButton("A");
        JButton jb2 = new JButton("B");
        JButton jb3 = new JButton("C");
        JButton jb4 = new JButton("D");
        JButton jb5 = new JButton("E");

        jf.add(jb1);
        jf.add(jb2);
        jf.add(jb3);
        jf.add(jb4);
        jf.add(jb5);

在这里插入图片描述

6.常用事件监听器

事件模型的三个对象:事件源,事件,监听程序。

事件源:事件发生的地方,如点击按钮,按钮即为事件源

事件:要发生的事情

事件处理:对发生的事情做出的处理方案

事件监听:把事件源和事件关联起来

动作事件监听:ActionEvent,事件源:JButton,JList,JTextField等,方法:addActionListener();

焦点事件监听:FocusEvent,事件源:Component及其派生,方法:addFocusListener();

示例:点击按钮文本框中出现文字

        JFrame jf = new JFrame("JFrame");
        jf.setLayout(new FlowLayout(FlowLayout.LEFT));
        jf.setSize(600, 600);
        jf.setLocationRelativeTo(null);
        jf.setVisible(true);
        jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

        JTextArea area = new JTextArea(10,20);
        area.setLineWrap(true);
        JButton button = new JButton("点击按钮生成文字");
        button.addActionListener(e->{
            area.append("年轻人好自为之");
        });
        jf.add(area);
        jf.add(button);

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/642318.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

进行兼容性测试需要注意什么?

兼容性测试是一项非常重要的软件测试过程,它确保软件能够在各种不同的操作系统、浏览器和设备上正常运行,那进行兼容性测试需要注意什么? 1、确定测试范围 在进行兼容性测试之前,首先需要确定测试的范围。这包括要测试的操作系统、…

我收集的一些与学习相关的自用网站

目录 前言 一、学习教程网站 廖雪峰的官方网站 菜鸟教程网站 W3school网站 BEJSON校验网站 C语言中文网站 码农教程网站 JavaScript中文网站 CSS参考网站 Htmlcheatsheet 网站 练习CSS选择器网站 练习CSS Fiex网站 css自动生成流行布局和模式的集合的网站 交互式…

单例模式(三)

过气的,终究是过气了 上一章简单介绍了 UML 类图(二), 如果没有看过,请观看上一章 一. 单例模式 所谓的单例设计模式,就是采用一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例, 并且该类只提供一个取得其对象实…

Jmeter之单接口的性能测试

目录 前言: 性能指标 测试工具选择 Jmeter 获取性能指标 编辑接口信息 设置监听器 开始监控 收集监控数据 数据指标分析 总结: 前言: 服务端的整体性能测试是一个非常复杂的概念,包含生成虚拟用户,模拟并发&a…

Centos7 离线安装gcc gcc-

方法一:centos7 挂载本地iso yum源 cd /etc/yum.repos.d/ vim ios.repo [ios] nameios baseurlfile:///mnt/cdrom enable1 gpgcheck0 #镜像挂载本地 mount -o loop CentOS-7-x86_64-DVD-2009.iso /mnt/cdrom/ yum clean all yum makecache yum -y install gcc g…

助力工业智能生产质检,基于yolov5n/s/m不同精度系列模型开发构建热轧钢缺陷检测识别系统,对比分析性能差异

缺陷先关的智能检测应用和深度学习的结合是具有非常不错的应用前景的,比如:PCB缺陷检测、布匹瑕疵缺陷检测、瓷砖缺陷检测等等,在我之前的博文中对于缺陷领域相关的实践也有不少的项目开发实践,感性却的话可以自行移步阅读即可。 …

后端学vue2

工程创建 安装vue脚手架 安装好nodejs之后,安装vue脚手架 npm install -g vue/cli-g 参数表示全局安装,这样在任意目录都可以使用 vue 脚本创建项目安装时候使用vue ui 创建 安装 vue调试工具devtools devtools 插件网址:https://devtoo…

软件测试05:软件测试分类

软件测试05:软件测试分类 软件测试分类 按照开发阶段划分 单元测试 单元测试又称模型测试,是针对软件设计的最小单位——程序进行正确性检验的测试工作。其目的在于检查每个程序单元能否正确实现详细设计说明中的模块功能、性能、接口和设计约束等要求…

华为参战!国产之光盘古大模型推:盘古Chat

盘古Chat是华为基于盘古大模型开发的一款多模态千亿级大模型产品,可以支持多种自然语言理解和生成的任务,如文本生成、问答、翻译、对话等。它是直接对标目前比较火爆的ChatGPT的产品,被认为是新一代的国产“AI”王炸。 盘古Chat预计将于今…

HTML5+CSS3+Vue小实例:仿制B站PC端首页的吃豆人轮播图

实例:仿制B站PC端首页的吃豆人轮播图 技术栈:HTML+CSS+Vue.js 字体图标库:font-awesome 效果: 源码: 【html】 <!DOCTYPE html> <html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"><…

功率放大器如何驱动水声声呐捕鱼?

第十五个“世界海洋日”&#xff0c;我们除了聚焦如何更好地保护海洋环境&#xff0c;对于海洋资源的可持续性利用&#xff0c;如何让“海洋宝藏”更好地造福人类&#xff0c;也是一个重要课题。想要发现更多的渔业资源&#xff0c;有项技术必不可少&#xff0c;那就是声呐技术…

Apache Log4j2 lookup JNDI 注入漏洞(CVE-2021-44228)

复现环境以及使用的工具 环境&#xff1a;使用Vulhub的漏洞环境 工具&#xff1a;bp和JNDIExploit-1-1.2&#xff0c;需要Java环境&#xff01;&#xff01; 攻击机和受害机配置 受害机&#xff1a;kali&#xff0c;ip地址为&#xff1a;192.168.150.135。使用vulhub漏洞环境…

无缝集合成功体验:打造高效的第三方API接口应用程序

欢迎来到我们的API接口 专业数据平台&#xff0c;今天我们将介绍如何使用库和框架API来简化开发流程&#xff0c;构建快速、可靠的应用程序。在本文档中&#xff0c;我们将重点介绍企业四要素API接口的作用&#xff0c;并提供一些示例代码可以帮助您更好地理解。 企业四要素是在…

统信下进行打deb安装包,ubuntu使用dpkg打deb包,tomcat的deb安装包制作

背景 由于安全需要&#xff0c;tomcat不能用解压缩版本&#xff0c;只能通过deb安装的方式使用。 制作tomcat的deb安装包 安装环境 使用 sudo apt-get install automake 将安装 autoconf{a} automake autotools-dev{a} 三个包。 使用 sudo apt-get install dh-make 将安装 …

docker离线安装mysql

docker离线安装mysql 第一步&#xff1a;找到一台联网的安装了docker的服务器&#xff0c;查看当前docker镜像&#xff1a;docker images &#xff0c;拉取mysql镜像包&#xff1a;docker save -o mysql.tar mysql:latest&#xff0c;其中latest为tag行内容 第二步&#xff1a…

号称 Java 面试八股文天花板(2023 最新版)首次开源

咱们先来说说&#xff1a; 最近感慨面试难的人越来越多了&#xff0c;一方面是市场环境&#xff0c;更重要的一方面是企业对 Java 的人才要求越来越高了。 基本上这样感慨的分为两类人&#xff0c;第一&#xff0c;虽然挂着 3、5 年经验&#xff0c;但肚子里货少&#xff0c;也…

Java中锁的分类,你了解几种?

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 文章目录 什么是锁隐式锁和显式锁隐式锁显式锁 悲观锁和乐观锁悲观锁乐观锁 公平锁和非公平锁公平锁非公平锁 可重入锁和非可重入锁可重入…

Java 基于 Apache ECharts 实现:柱状图、折线图、环形图等案例

Java 基于 Apache ECharts 实现&#xff1a;柱状图、折线图、环形图等案例 柱状图 效果图 源代码 <!DOCTYPE html> <html><head><meta charset"utf-8"><meta http-equiv"X-UA-Compatible" content"IEedge" />&…

0基础转行,网路工程和网络安全哪个更有发展前景?

对于初学者而言&#xff0c;初入IT行业最重要的就是选择一个热门且前景好的职业&#xff0c;而网络工程和网络安全作为IT行业的热门职业必然成为很多人的首选&#xff0c;那么网络工程和网络安全哪个发展前景好?小编带大家详细了解一下。 首先&#xff0c;我们对网络工程和网络…

转行软件测试5年了,给还在犹豫的女生一点建议

首先你选择的方向是对的&#xff0c;软件测试这个岗位对于女生是相当友好的. 然后再说女生&#xff0c;软件行业&#xff0c;开发大部分都是男生&#xff0c;所以对于女生来说&#xff0c;因为天性&#xff0c;所以很多时候在互联网公司还是非常吃香的&#xff0c;加上女生本身…