Java基础-组件及事件处理(下)

news2024/9/9 4:07:58

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹)

目录

面板组件

说明

常见组件

 JScrollPane常用构造方法

JScrollPane设置面板滚动策略的方法 

JScrollPane滚动策略常量值

文本组件

定义

JTextField

定义

常用构造方法:

示例

JTextArea

定义

常用构造方法

示例:

标签组件 

定义

说明:

构造方法:

示例:

按钮组件

说明

AbstractButton常用方法

JCheckBox 

说明

常用构造方法

JRadioButton

说明

常用构造方法


面板组件

说明

Swig组件中供了一些面板组件(中间容器),这些面板组件不能单独存在,只能放置在顶级窗口容器中。

常见组件

JPanel

JPanel面板组件是一个无边框,不能被移动、放大、缩小或者关闭的面板,它的默认布局管理器是FlowLayout。


JScrollPane:

JScrollPane是一个带有滚动条的面板容器,且只能添加一个组件;想向JScrollPane面板中添加多个组件,应先将这多个组件添加到某个组件中,然后再将这个组件添加到JScrollPane中。

 JScrollPane常用构造方法

说明:第三个构造方法,是在第二个构造方法的基础上指定滚动条策略。如果在构造方法中没用指定显示组件和滚动条策略,也可以使用JScrollPane提供的方法进行设置。 

JScrollPane设置面板滚动策略的方法 

说明:
上述表格方法是JScrollPane滚动面板组件对象提供的设置滚动策略的方法。
滚动策略方法取值可以使用ScrollPaneConstants:接口中声明了多个常量属性来进行设置。

JScrollPane滚动策略常量值

文本组件

定义

文本组件用于接收用户输入的信息,包括文本框(JTextField)、文本域(JTextArea)等。

说明:

它们都有一个共同父类JTextComponent,JTextComponent是一个抽象类。


常用方法:

JTextField

定义

JTextField称为文本框,它只能接收单行文本的输入。

常用构造方法:

说明:

JTextField有一个子类JPasswordField,表示一个单行输入密码框。
在此框中是通过显示指定的回显字符作为占位符。
新创建的密码框默认的回显字符为“*”。 

示例

import java.awt.GridLayout;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.JLabel;
public class JTextDemo01
{
    public static void main(String args[])
    {
        JFrame frame = new JFrame("测试单行文本组件JTextField");
        //文本组件长度30
        JTextField name = new JTextField(30);
        //带默认内容的文本组件,长度10
        JTextField noed = new JTextField("默认文本", 10);
        JLabel nameLab = new JLabel("输入用户姓名:");
        JLabel noedLab = new JLabel("不可编辑文本:");
        //设置组件的长度
        name.setColumns(30);
        noed.setColumns(10);
        //设置默认文本组件不可编辑
        noed.setEnabled(false); 
        //使用网格布局
        frame.setLayout(new GridLayout(2, 2));
        frame.add(nameLab);
        frame.add(name);
        frame.add(noedLab);
        frame.add(noed);
        frame.setSize(400, 100);
        frame.setLocation(300, 200);
        frame.setVisible(true);
    }
}

运行效果

 

JTextArea

定义

JTextArea称为文本域,它能接收多行文本的输入,使用JTextArea构造方法创建对象时可以设定区域的行数、列数。

常用构造方法

示例:

import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JLabel;
public class JTextAreaDemo01
{
    public static void main(String args[])
    {
        JFrame frame = new JFrame("使用文本域");
        //设置文本域的行数,列数
        JTextArea jtextarearea = new JTextArea(3, 20); // 设置大小
        JLabel lab = new JLabel("多行文本域:");
        //设置标签大小
        lab.setBounds(10, 10, 120, 20);
        //设置文本域的大小
        jtextarearea.setBounds(100, 10, 200, 140);
        //取消布局管理器,使用绝对定位
        frame.setLayout(null); // 取消布局管理器
        frame.add(lab);
        frame.add(jtextarearea);
        frame.setSize(400, 200);
        frame.setLocation(300, 200);
        frame.setVisible(true);
    }
}

运行效果:

标签组件 

定义

Swig中提供了用于仅供展示的标签组件。

说明:

标签组件主要用到的是JLabel,JLabel组件可以显示文本、图像,还可以设置标签内容的垂直和水平对齐方式。

构造方法:

示例:

import javax.swing.*;

public class JLabelDemo {
    public static void main(String[] agrs) {
        JFrame frame=new JFrame("Java标签组件示例");    //创建Frame窗口
        JPanel jp=new JPanel();    //创建面板

        JLabel label1=new JLabel("普通标签");    //创建标签
        JLabel label2=new JLabel();

        label2.setText("调用setText()方法");

        ImageIcon img=new ImageIcon("a.png");    //创建一个图标

        //创建既含有文本又含有图标的JLabel对象
        JLabel label3=new JLabel("开始理财",img,JLabel.CENTER);

        jp.add(label1);    //添加标签到面板
        jp.add(label2);
        jp.add(label3);

        frame.add(jp);

        frame.setBounds(300,200,400,400);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}

运行结果:

按钮组件

说明

在Swing中常见的按钮组件有JButton、JCheckBox、JRadioButton等,它们都是抽象类AbstractButton:类的直接或间接子类。

AbstractButton常用方法

JCheckBox 

说明

JCheckBox组件被称为复选框组件,它有选中和未选中两种状态,通常复选框会有多个,用户可以选中其中一个或者多个。

常用构造方法


说明

除了上述构造方法,还可以调用从父类继承的set Text(String text)来设置
复选框文本信息,调用setSelected(boolean b)方法来设置复选框状态(是否被
选中),也可以调用isSelected(方法来判断复选框是否被选中。

JRadioButton

说明

JRadioButton:组件被称为单选按钮组件,单选按钮只能选中一个。
使用:
要JRadioButton按钮之间的互斥,需要使用ButtonGroup类。
ButtonGroup是一个不可见的单选按钮组。将多个JRadioButton按钮添加到同一个单选按钮组中就能实现JRadioButton按钮的单选功能。

常用构造方法

 

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

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

相关文章

ITSS服务经理:WAVE SUMMIT深度学习开发者大会2024在北京召开

在6月28日,由深度学习技术及应用国家工程研究中心主导的WAVE SUMMIT深度学习开发者大会2024于北京隆重举行。 此次盛会由百度飞桨和文心大模型联袂承办。 在大会上,百度震撼发布文心大模型4.0 Turbo版本,并宣布其API接口将向广大开发者开放…

MySQL的事务使用

文章目录 特点JDBC使用事务 特点 事务的基本属性ACID: 数据库事务的ACID特性是指保证数据库在执行事务操作时能够可靠和正确的四个基本属性。ACID是原子性(Atomicity)、一致性(Consistency)、隔离性(Isol…

[leetcode]partition-list 分隔链表

. - 力扣(LeetCode) class Solution { public:ListNode* partition(ListNode* head, int x) {ListNode *smlDummy new ListNode(0), *bigDummy new ListNode(0);ListNode *sml smlDummy, *big bigDummy;while (head ! nullptr) {if (head->val &l…

OpenCV 看这一篇就够了 持续更新中

目录 一、基础操作 1. openCV界面 2. 图像的基础操作 2.1 图像的输入与输出 2.2 图片的数组的本质 2.3 修改像素尺寸 3. 视频的基础操作 3.1 视频的本质 3.2 视频的输入与输出 3.2.1 视频文件读取 3.2.2 摄像头捕获 3.2.3 视频保存 4. 回调函数 二、界面控件 1.…

Affnity 值得购买吗?有Affinity 优惠码?

今年,Affinity 提供了全场 7 折优惠活动,这里包括桌面应用、插件、工作手册等内容,另外针对 iPad 应用提供更为给力的 5 折优惠!对于从事图形设计、排版的用户来说,由于 Affinity 的创意设计应用均采用了一次买断制&am…

2024年最新全国河流湖泊矢量数据

2024最新全国河流湖泊矢量数据 (数据部分预览) 数据介绍 OpenStreetMap(OSM) 一个开放的、免费的、全球性的地图项目,由全球的志愿者和地图爱好者们共同创建和维护。 OSM的数据包括道路、建筑、公园、河流、湖泊等各…

2.快速搭建 SpringBoot hello world

环境要求: Spring Boot 2.6.1 需要Java 8,并且与Java 15(包括)兼容。 还需要Spring Framework 5.2.10.RELEASE或 更高版本。 注意:Spring Boot 3.0版本以上就需要 Java 8以上了,即不能再使用 Java8版本了。…

headerpwn:一款针对服务器响应与HTTP Header的模糊测试工具

关于headerpwn headerpwn是一款针对服务器响应与HTTP Header的模糊测试工具,广大研究人员可以利用该工具查找网络异常并分析服务器是如何响应不同HTTP Header的。 功能介绍 当前版本的headerpwn支持下列功能: 1、服务器安全与异常检测; 2、…

顶顶通呼叫中心中间件-私有化asrproxy配置热词模型

顶顶通呼叫中心中间件-私有化asrproxy配置热词模型 1、配置热词文件 将热词存在一个txt文件中,比如:hotword.txttxt文本里面写热词,一个热词一行,用utf8编码把热词文件上传到asrproxy程序目录中,路径:/dd…

【前端错误】未捕获的语法错误:Uncaught SyntaxError

🔥 个人主页:空白诗 文章目录 一、错误原因分析1. 缺少括号或引号2. 多余的括号或引号3. 使用保留字作为变量名4. 缺少分号5. 对象字面量中缺少属性分隔符 二、解决方案1. 检查括号和引号匹配2. 避免使用保留字作为变量名3. 添加必要的分号4. 正确定义对…

RABBITMQ的本地测试证书生成脚本

由于小程序要求必须访问wss的接口,因此需要将测试环境也切换到https,看了下官方的文档 RabbitMQ Web STOMP Plugin | RabbitMQ里面有这个信息 然后敲打GPT一阵子,把要求输入几个来回,得到这样一个脚本: generate_cer…

从0到1开发一个Vue3的新手引导组件(附带遇到的问题以及解决方式)

1. 前言: 新手引导组件,顾名思义,就是强制性的要求第一次使用的用户跟随引导使用应用,可以让一些第一次使用系统的新手快速上手,正好我最近也遇到了这个需求,于是就想着开发一个通用组件拿出来使用(写完之后才发现element就有,后悔了哈哈哈😭😭) 示例图…

FastGPT连接OneAI接入网络模型

文章目录 FastGPT连接OneAI接入网络模型1.准备工作2.开始部署2.1下载 docker-compose.yml2.2修改docker-compose.yml里的参数 3.打开FastGPT添加模型3.1打开OneAPI3.2接入网络模型3.3重启服务 FastGPT连接OneAI接入网络模型 1.准备工作 本文档参考FastGPT的官方文档 主机ip接…

树的结构(b,b+树)

无论线性表,栈还是队列,都是一对一,查询的时候,效率较低,数据量比较的大的情况 1.树的定义 一种数据结构,有层次关系的集合,根朝上,叶朝下 除了根节点外,每个子节点都…

v-model指令详情——04

V-bind 和v-mode的区别和联系&#xff1a; 1.v-bind 和 v-mode 这两个指令都可以完成数据绑定 2.v-bind是单项数据绑定 data>试图 3.v-mode 是双向数据绑定 data<>试图 4.v-bind 可以使用在任何HTML标签当中。v-mode 只能使用在表单元素上例如&#xff1a; inp…

盘一盘3DGS对哪些行业影响最大?

在日新月异的科技时代&#xff0c;每一个新兴技术的诞生都像是宇宙中的新星&#xff0c;以其独特的光芒照亮并改变着世界。3DGS正是这样一项技术&#xff0c;它的出现无疑对传统3D视觉产生了巨大的冲击&#xff0c;也给各行各业带来了巨大的影响。作为CV界的新晋黑马&#xff0…

【游戏引擎之路】登神长阶(七)——x86汇编学习:凡做难事,必有所得

5月20日-6月4日&#xff1a;攻克2D物理引擎。 6月4日-6月13日&#xff1a;攻克《3D数学基础》。 6月13日-6月20日&#xff1a;攻克《3D图形教程》。 6月21日-6月22日&#xff1a;攻克《Raycasting游戏教程》。 6月23日-7月1日&#xff1a;攻克《Windows游戏编程大师技巧》。 7月…

数据结构-二叉搜索树与红黑树

4.二叉搜索树 又叫二叉查找树、有序二叉树、排序二叉树。树中任意一个结点&#xff0c;其左子树的每个节点值都要小于该节点&#xff0c;其右子树的每个节点值都要大于该节点 作用&#xff1a;能够进行快速查找、插入、删除操作 4.1 二叉搜索树的时间复杂度 注&#xff1a;二…

Python基础教学之五:异常处理与文件操作——让程序更健壮

Python基础教学之五&#xff1a;异常处理与文件操作——让程序更健壮 一、异常处理概念 1. 理解异常 异常是程序运行中发生的错误或意外情况&#xff0c;比如除以零、访问不存在的列表元素等。如果不进行处理&#xff0c;异常会导致程序终止运行。在编程过程中&#xff0c;我…

Java语言程序设计——篇三(2)

循环结构 概述1️⃣while循环例题讲解 2️⃣do-while循环例题讲解 &#x1f6a9;while循环与do-while循环区别3️⃣for循环例题讲解 4️⃣循环的嵌套&#x1f3ee;例题讲解 概述 ⭐️Java语言提供了4种循环结构&#xff1a; (1) while循环 (2) do-while循环 (3) for循环 (4)增…