翻阅必备----Java窗口组件,容器,布局,监听,事件 API大全

news2024/11/16 12:00:48

----------------------------------------------------------------------------------------在这里插入图片描述

👨‍💻个人主页:@元宇宙-秩沅

hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!

本文由 秩沅 原创

收录于专栏 java

⭐Java窗口组件以及事件处⭐


文章目录

    • ⭐Java窗口组件以及事件处⭐
  • 一,==常用组件,容器和布局==
    • 👨‍💻联系图
    • 👨‍💻组件
    • 👨‍💻容器
    • 👨‍💻FlowLayout布局
  • 二,==事件与监听==
    • 👨‍💻事件👍
  • 三,==典例解析==
    • 👨‍💻例题👍
    • 👨‍💻上代码👍
    • 👨‍💻运行结果👍


一,常用组件,容器和布局


👨‍💻联系图


在这里插入图片描述


👨‍💻组件


(1)JTextField --文本框

 输入单行文本

(2)JTextArea–文本区

输入多行文本

(3)JButton–按钮

单击按钮

(4)JLable–标签

提供提示信息

(5)JChexkBox–复选框

提供多项选择

(6)JCombobox—下拉列表

下拉列表

(7)JPasswordField --密码框

输入密码

👨‍💻容器


(0)JFrame–底层容器

英文记忆 :Frame 框架

 Frame是窗口,窗口也是容器,下面的容器都称为为中间容器 

(1)JPanel–面板容器

英文记忆 :Panel 面板

默认布局为FlowLayout布局

(2)JTabbedPane --选项卡窗格容器

英文记忆 :Tabbel 选择

可作为中间容器,添加组件后课自动指定选项卡
1. 静态方法: add(  strng a  , Component c ) -----添加组件
2. 构造方法:public JTabbedPane( int  tabPlacement )   ---  tabPlacement 决定选项卡的位置

(3)JScrollPane—滚动窗格容器

英文记忆 :Scroll 滚动

只可以添加一个组件,通过滚动条来观看该组件
    一般将JTextArea 文本区 放到滚动窗格中
    JScrollPane scroll = new JScrollPane ( new  JtextArea ( ) );

(4)JSplitPane—拆分窗格容器

英文记忆 :Split 分离

被分成两部分的容器: 水平拆分窗格 ,垂直拆分窗格
1.静态常量:
水平拆分 :HORIZONTAL_SPLIT
垂直拆分:VERTICAL_SPLIT
2. 构造方法:
JSplitPane( int a , Component b ,  Component c )
JSplitPane( int a ,boolean d , Component b ,  Component c )
3,解释
参数a 填上面的两个静态常量来决定水平或垂直拆分
参数d决定拆分线移动时组件是否发生连续变化

(5)JLayeredPane----分层窗格

英文记忆 :Layered 分层

 可将需要处理重叠问题的组件添加到分层窗格中,分窗格分为五层
 1.静态方法:  add( JComponent com , int layer )
 2.解释 :     参数layer 填:
 DEFAULT_LAYER   第一层
 PALETTE_LAYER   第二层
 MODAL_LAYER     第三层
 POPUP_LAYER     第四层
 DRAG_LAYER      第五层

👨‍💻FlowLayout布局


(1)FlowLayout布局

英文记忆 :flow 跟随,顺从

是JPanel(面板)的默认布局 ,特点:对象居中对齐,先后顺序,从左到右排列

使用FlowLAyout的容器 , 要改变组件大小的方法,如容器中的按钮组件:

button.setPreferredSize(   new Dimension (  长  , 宽  )   )

(2)BorderLayout布局

英文记忆 :Border 边界

将区域划分 东 西 南 北 中 五个区域

如使用BorderLayout布局的容器con ,添加组件b 到北方区域
方法 :       con.add(  b , BorderLayout .  NORTH ) ;
静态常量:
EAST
WEST
SOUTH
NORTH
CENTER

(3)CardLayout布局

英文记忆 :card 卡片

叠扑克牌布局 , 点击组件,同一时刻只能 显示一个
  如:布局设置在容器con设置方法
(1)CardLayout card = new  CardLayout();
(2)con .setLayout(    card  ) ; //设置布局
(3)con.add( String a  , Component b ) ;  //添加组件进入设置好布局的容器
(4)card.show( con , string a ); //显示容器中名字为a 的组件

(4)GridLayout布局

 英文记忆 :Grid 网格
    GridLayout是使用较多的布局编辑器,将组件划到网格中

(5)NULL布局

可以DIY随意组件的位置 ,例如:p是个容器

   方法:  p.setLayout(  null ) ;
         
   组件. setBounds( int a  , int b , int width ,int height );
       a  b 代表组件的位置 
       width height代表组建的长和宽

二,事件与监听

👨‍💻事件👍

(1)DocumentEvent事件

1.注册监视器

(xx.getDocument()).addDocummentListener( DocumentListen YY );

2,重写接口中的方法

方法描述
public void changedUpDate()发出属性或属性集已更改的通知
public void removeUpDate()通知文档有删除
public void insertUpDate()通知文档有插入

三,典例解析

👨‍💻例题👍

  • 实现一个标题为计算的窗口,窗口的布局为follow layout布局,
    在窗口中添加两个文本区,当用户在一个文本区中输入若干个数时,
    另一个文本区对输入的数进行求和运算并求出平均值,
    也就是说随着用户输入的变化,另一个文本区不断的更新求和及平均值。

👨‍💻上代码👍


package jiemian;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
public class Man {
		public static void main(String[] args) {
	     window w1 = new window("计算",450,450,450,450);
		}
	}
 @SuppressWarnings("serial")
class window extends JFrame implements DocumentListener{
	      
			JTextArea t1 ,t2 ;         //JTextArea -文本区组件
			double sum=0 ,avg = 0;    //求和 和 平均值 的变量
			window(String A ,int a ,int b ,int c ,int d){
				  setTitle(A);
				  setBounds(a,b,c,d);
		//JPanel MB = new JPanel();  //创建一个面板容器
				  FlowLayout ron = new FlowLayout();
				  setLayout(ron);    //设置一个FlowLayout的布局
				  t1 = new JTextArea(5 , 10 ) ;
	  // 第一个参数为可见行数 ,第二个参数为可见列数
				  t2 = new JTextArea(5 , 10 ) ;
				  t2.setEditable(false);   //将文本区t2设置为不可编辑
				  add(t1);
				  add(t2);
	  //激活文档监听器
				  ( t1.getDocument()).addDocumentListener(this);
				  setVisible(true);   //设置为可见
				  validate();         //确保组件具有有效的布局
				  setDefaultCloseOperation(DISPOSE_ON_CLOSE);
			}
	 //重写接口方法
			@Override           //发出文档有更改的通知
			public void changedUpdate(DocumentEvent e) {
			// TODO Auto-generated method stub	
			
			String a = t1.getText(); ;
			sum = 0 ; avg =0 ;
			
			//除了123456789以外的字符和+ 为分隔符分离一个字符串。
			String [] s = a.split("[^123456789+]");
			for(int i = 0 ; i <s.length ;i++)
			{
				try{sum += Double.parseDouble(s[i]);}
				catch( Exception ee ) {}
			}
			avg = sum / s.length ;
			t2.setText(null);
 			t2.append("数值的和为"+sum);   //append 是追加的意思
 			t2.append("\n数值的平均值为"+avg);   
			}
			@Override
			public void removeUpdate(DocumentEvent e) {
		        changedUpdate(e);
			}
			@Override
			public void insertUpdate(DocumentEvent e) {
				  changedUpdate(e);
					
			}
		}


👨‍💻运行结果👍

在这里插入图片描述

你们的点赞👍 收藏⭐ 留言📝 关注✅是我持续创作,输出优质内容的最大动力!
在这里插入图片描述

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

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

相关文章

将存在课题的过程可视化,丰田的“自工程完结”是什么?

将存在课题的过程可视化&#xff0c;丰田的“自工程完结”是什么? “全日本的公司是不是都发生了奇怪的事情呢?人们常说日本人很勤劳。所以要拼命努力。但是&#xff0c;有很多人拼命努力却毫无成果。(中略)这样才不会有动力。明明很努力却没有成果&#xff0c;我认为这才是奇…

将SpringBOOT项目 打成 war 包 并 部署到 Tomcat

当前环境&#xff1a;Windows Tomcat版本&#xff1a;tomcat8.5 SpringBoot版本&#xff1a; 2.2.3 1. pom.xml 修改打包方式 <packaging>war</packaging> 2.加入SpringBoot打包插件&#xff08;pom.xml&#xff09; <build><plugins><plugin&g…

Jmeter的使用说明

一、安装Jmeter工具 链接&#xff1a;https://pan.baidu.com/s/1ZYc15eq9DO-r0ChKHxMXlg?pwdckcd 提取码&#xff1a;ckcd --来自百度网盘超级会员V5的分享二、Jmeter的常用元器件说明 jmeter八大元件件&#xff1a;取样器&#xff0c;前置处理器&#xff0c;后置处理器&a…

计算机网络——第六章笔记(1)

传输层 传输层是层是整个协议栈(TCP/IP)的核心。 任务&#xff1a;是提供可靠的、高效的数据传输。 面向连接的服务 1、端到端的连接管理 建立连接 数据传输 释放连接 2、流控制 3、差错控制 传输环境&#xff1a;通信子网、物理信道。 传输服务和网络服务的两个主…

网络了解编程五层协议

一:了解 1.了解一下网络: 局域网(LAN),一个上课的机房,多个连在同一个路由器上的设备,就是在一个局域网中---打游戏 (局域网内的主机之间能方便的进行网络通信&#xff0c;又称为内网&#xff1b;局域网和局域网之间在没有连接的情况下&#xff0c;是无法通信的) 广域网(WAN) ,…

无线 LAN 服务概述

无线 LAN 服务是 Windows Server 2008 R2 和 Windows Server 2008 中的一项功能&#xff0c;可用于启用无线 WLAN 自动配置服务&#xff0c;以及配置 WLAN 自动配置以自动启动。一旦启用后&#xff0c;WLAN 自动配置会动态选择计算机将自动连接的无线网络&#xff0c;并配置无线…

项目管理的四大模型,PM必懂的事半功倍模型!

瀑布模型、迭代模型、增量模型、原型模型&#xff0c;是项目管理常见的四种模型。每种模型都有其优缺点和适用的项目类型。项目经理针对不同的项目用对模型&#xff0c;才能起到事半功倍的作用。 今天就讲讲这四种模型及其优缺点&#xff1a; 如果你需要项目管理相关资料可拉…

代码质量与安全 | “吃狗粮”能够影响到代码质量?来了解一下!

“dogfooding”是什么&#xff1f;乍一看&#xff0c;这就是“吃狗粮”的意思&#xff0c;但其实这来源于一句俚语&#xff1a;“Eat your own dog food”&#xff0c;直译过来就是“吃自己的狗粮”&#xff0c;常用于描述公司使用自己产品的这一种情况。 “吃自己的狗粮”实践…

(更新中)【后端入门到入土!】Java+Servlet+JDBC+SSM+SpringBoot+SpringCloud 基础入门

目录 第一部分&#xff1a;Java 基础语法&#xff08;已完结&#xff09; 第二部分&#xff1a;Java 高级&#xff08;已完结&#xff09; 第三部分&#xff1a;Servlet&#xff08;待更新……&#xff09; 第四部分&#xff1a;JDBC&#xff08;待更新……&#xff09; 第…

如何搭建一套指标体系?

一、引言 (1)为什么指标体系这么重要? (2)什么是指标体系? (3)指标体系的衡量标准是什么? (4)如何去搭建一套好好的指标体系? 只要弄清楚了这4个问题,指标体系的搭建工作就迅速地开展、快速地落地,精准地产生业务价值。以上是对于数据同学而言的工作。此外,对于…

漏洞练习环境搭建笔记

Docker 安装&#xff08;ubuntu&#xff09; 1.常归删除操作 sudo apt-get autoremove docker docker-ce docker-engine docker.io containerd runc 2. 删除docker其他没有没有卸载 dpkg -l | grep docker dpkg -l |grep ^rc|awk ‘{print $2}’ |sudo xargs dpkg -P # 删除无…

雷神MixBook Air笔记本系统故障怎么重装?

雷神MixBook Air笔记本系统故障怎么重装&#xff1f;有用户使用的雷神MixBook Air笔记本系统出现了故障&#xff0c;导致无法正常的使用电脑了。这个情况我们可以使用U盘来重装一个系统&#xff0c;恢复正常的使用。那么具体要怎么去进行操作&#xff0c;看看具体的方法吧。 准…

python多维数组切片

1、数组a第0个元素&#xff08;二维数组&#xff09;下的所有子元素&#xff08;一维数组&#xff09;的第一列 import numpy as np bnp.arange(24) ab.reshape(2,3,4) print a print a[0,:,0] 2、取所有二维数组下的每个二维数组的第0个元素&#xff08;一维数组&#xff09; …

会计部门通过数字化工作流程提高生产力

会计部门通过数字化工作流程提高生产力 基于纸张的会计流程令人担忧&#xff0c;在一些企业中&#xff0c;基于纸张的会计流程正在削弱企业的竞争力。 现在&#xff0c;企业高管们比以往任何时候都更想知道哪些技术在数字业务战略中作用最大&#xff0c;在简化会计流程方面&…

机器学习模型评价指标

前文&#xff1a;https://www.cnblogs.com/odesey/p/16902836.html 如果图不能加载&#xff0c;请查看原文&#xff1a;https://www.cnblogs.com/odesey/p/16907351.html 介绍了混淆矩阵。本文旨在说明其他机器学习模型的评价指标。 1. 准确率&#xff08;Accuracy-Acc&#xf…

企业新闻媒体资源有哪些类型?从哪里找?

互联网时代&#xff0c;人们获取信息的来源主要就是网络。企业想要将自己的品牌或是产品推广出去&#xff0c;互联网宣传是很重要的步骤。 企业新闻媒体发稿推广是打响品牌知名度、做好全网营销的第一步。新闻媒体宣传不仅仅性价比很高&#xff0c;同时持续时间长&#xff0c;…

细说智能家居新标准-Matter,蓝牙在智能家居中发挥的作用

Matter是在连通性标准联盟(CSA&#xff09;下开发的互操作性协议。其联盟成员包括最大的智能家居技术制造商&#xff0c;如Amazon、Apple、Google、Samsung和其他400多家企业。Matter的通用性和开放性使物联网设备能够安全地连接和交互&#xff0c;无论制造商。例如&#xff0c…

Linux终端上传、下载文件命令 lrzsz

一、什么是lrzsz&#xff1f; lrzsz是一款在linux里可代替ftp上传和下载的程序。 二、为什么要用它&#xff1f; 一般来说我们自然是用不着的&#xff0c;上传下载ftp工具都很方便&#xff0c;前提是你账户拥有最高权限&#xff0c;但如果你不是ROOT&#xff0c;做创建删除上传…

使用 ISAR 数据库提供离线 Flutter 支持

使用 ISAR 数据库提供离线 Flutter 支持 译文 https://medium.com/tkarmakar27112000/flutter-offline-support-using-isar-database-b79f5006d3a 前言 这是我的口头禅&#xff0c;我试图遵循我的 应用 application 。对于那些针对二三线城市的面向客户的应用程序&#xff0c;应…

Model Fusion via Optimal Transport论文阅读+代码解析

论文地址点这里 一. 论文基本介绍 最近2023ICLR中的一篇论文被曝抄袭一事&#xff0c;而进行举报的作者就是本次要将的论文的作者之一&#xff0c;可以发现本篇论文的工作是非常不错的。本篇论文也是第一个从最优运输地角度考虑模型之间地融合技术&#xff0c;通过排列神经元…