GUI的简单概述和基本使用

GUI的概念

1,到目前为止,我们编写的都是控制输入的程序,操作使用非常不直观,采取一直方式让效果呈现在窗口上。

2,GUI及图形界面指采用图像方式显示的用户界面,与早期计算机的命令行界面相比,图形界面对于用户在视觉上更易于接受。

swing概述

1 swing 是一个为Java设计的GUI工具包javax.swing,该包中包括了图形用户界面
的各种组件支持。
2 一个 Java 的图形界面,由各种不同类型的“元素”组成,这些“元素”被称为
组件(Component)。
3 swing中的组件可以分为两大类:容器(如窗口,对话框,面板)和功能组件(如按钮,输
入框,菜单等).
4 它们的区别主要是在概念上的。因为每个容器也都是组件。
5 容器是一种可以包含组件的特殊组件。

容器组件

功能组件不能独立的展示出来,必须将组件放在一定的容器中慈爱可以显示出来。

容器可以容纳多个组件,通过调用组件的add方法向容器添加组件。

(其中:窗口JFrame和面板JPanel是最常用的两个容器)

用JFrame类用来创建窗体的基本架构

JFrame常用方法
this.setTitle("欢迎登录");//设置名字
this.setSize(300, 300);//设置窗口的长宽
this.setLocationRelativeTo(null);//水平垂直居中
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭窗口时也关闭程序
//this.setResizable(false);//禁止拖拽

/*

要进行的代码

*/

this.setVisible(true);//创建窗口

Jpanel


• JPanel面板,它是轻量级的容器;
• 面板中可以添加其它组件,也可以设置布局,我们一般使用面板来实现布局嵌套;

自己创建Jpanel面板对象,把JPanel作为一个组件添加到窗口或某个面板中.
常用方法:
void setBackground(Color bg)设置面板的背景色,由参数bg指定颜色
void setLayout(LayoutManager mgr)设置面板的布局,参数是布局管理器
Component add(Component comp)往面板中添加一个组件

简单的代码演示

结果:

常用组件

标签(JLabel)标签是容纳文本和图标的控件,通常用来在界面中标识别的控件。

JLabel()

创建一个空的标签

JLabel(String text)

创建一个带文本的标签

方法:

void setText(String text)

设置标签上的文本

String getText()

获得标签上的文本

setFont(new Font(“宋体”,Font.BOLD, 18)); 设置字体

单行文本(JTextField)

JTextField的构造函数:
JTextField(int columns)
方法:

void setText(String text)设置文本框中的文本
String getText()获得文本框中的文本
多行文本框(JTextArea)


构造函数:
JTextArea(int rows, int columns) 创建一个指定行数和列数的空文本域
方法:
void setText(String text) 设置文本域中的文本
String getText() 获得文本域中的文本
void setFont(Font font) 设置文本域中文本的字体
void setLineWrap(boolean wrap) //是否自动换行,默认false
如果需要文本区自动出现滚动条,可将文本区对象放入滚动窗格(JScrollPane)中:
JScrollPane scrollPane = new JScrollPane(txtArea);
add(scrollPane );

密码框:JPasswordField

构造函数:
JPasswordField(String text)
JPasswordField(String text, int columns)
方法:
char[] getPassword()
 

按钮(JButton)

构造方法:

JButton(String text)
方法:
创建一个带文本的标签
void setBackground(Color bg)设置按钮的背景色

void setEnabled(boolean b)
设置启用(或禁用)按钮,由参数b决

vo
id setToolTipText(String text) 设置按钮的悬停提示信息

利用上述组件创建一个简单的窗口

输出:


 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【征稿倒计时十天】第三届高性能计算与通信工程国际学术会议(HPCCE 2023)

【有ISSN、ISBN号!!往届均已完成EI检索】 第三届高性能计算与通信工程国际学术会议(HPCCE 2023) 2023 3rd International Conference on High Performance Computing and Communication Engineering (HPCCE 2023) 2023年12月22-24日 | 中国哈尔滨 第三…

Web组态与传统组态有什么区别?探索云组态的革新

一、Web组态的定义和背景 在深入探讨之前,我们先回顾一下“组态”的定义。在工业自动化领域,组态软件是用于创建监控和数据采集(SCADA)系统的工具,它允许工程师构建图形界面,实现与各种设备和机器的数据交…

速达软件任意文件上传漏洞复现

简介 速达软件专注中小企业管理软件,产品涵盖进销存软件,财务软件,ERP软件,CRM系统,项目管理软件,OA系统,仓库管理软件等,是中小企业管理市场的佼佼者,提供产品、技术、服务等信息,百万企业共同选择。速达软件全系产品存在任意文件上传漏洞,未经身份认证得攻击者可以通过此漏…

微服务2 Docker学习 P42-P60

Docker学习视频https://www.bilibili.com/video/BV1LQ4y127n4?p42&vd_source8665d6da33d4e2277ca40f03210fe53a 文档资料: 链接:https://pan.baidu.com/s/1P_Ag1BYiPaF52EI19A0YRw?pwdd03r 提取码:d03r Docker 其他笔记 服务器容器化-docker(全…

Python第三次练习

Python 一、如何判断一个字符串是否是另一个字符串的子串二、如何验证一个字符串中的每一个字符均在另一个字符串中出现三、如何判定一个字符串中既有数字又有字母四、做一个注册登录系统 一、如何判断一个字符串是否是另一个字符串的子串 实现代码: string1 inp…

5G - NR物理层解决方案支持6G非地面网络中的高移动性

文章目录 非地面网络场景链路仿真参数实验仿真结果 非地面网络场景 链路仿真参数 实验仿真结果 Figure 5 && Figure 6:不同信噪比下的BER和吞吐量 变量 SISO 2x2MIMO 2x4MIMO 2x8MIMOReyleigh衰落、Rician衰落、多径TDL-A(NLOS) 、TDL-E(LOS)(a)QPSK (b)16…

【React Hooks】useReducer()

useReducer 的三个参数是可选的,默认就是initialState,如果在调用的时候传递第三个参数那么他就会改变为你传递的参数,实际开发不建议这样写。会增加代码的不可读性。 使用方法: 必须将 useReducer 的第一个参数(函数…

代码随想录算法训练营 ---第五十七天

今天是两道动态规划的经典题目。 第一题: 简介: 做了今天的题目我有了新的理解,我觉得过去我过于注重对于二维数组的理解,忽略了对dp数组i 和 j 的含义的理解。 动态规划五部曲: 1.确定dp数组的含义 本题我们将i …

【Flutter】vs2022上开发flutter

在vs上开发flutter,结果扩展仓库上没办法找到Dart,Flutter。 在 这 搜索Dart时也无法找到插件。 最后发现是安装工具出错了 安装了 开发需要的是

Cython批量编译py文件并打包python项目为whl

1、Cython批量编译py文件 Cython是一个编程语言,它通过类似Python的语法来编写C扩展并可以被Python调用。能够将PythonC混合编码的.pyx脚本转换为C代码,主要用于优化Python脚本性能或Python调用C函数库。基于它的原理,可以得到一种代码加密的…

C++——红黑树

作者:几冬雪来 时间:2023年12月7日 内容:C——红黑树讲解 目录 前言: 红黑树的概念: 红黑树的性质: 红黑树的路径计算: 最长路径和最短路径: AVL树与红黑树的区别&#xff…

测试新手百科:Postman简介、安装、入门使用方法详细攻略!

一、Postman背景介绍 用户在开发或者调试网络程序或者是网页B/S模式的程序的时候是需要一些方法来跟踪网页请求的,用户可以使用一些网络的监视工具比如著名的Firebug等网页调试工具。今天给大家介绍的这款网页调试工具不仅可以调试简单的css、html、脚本等简单的网…

zabbix(2)

zabbix的自动发现机制 zabbx客户端主动和服务端联系,将自己的地址和端口发送服务端,实现自动添加监控主机 客户端是主动的一方 缺点:自定义网段中主机数量太多,登记耗时会很久,而且这个自动发现机制不是很稳定 zabb…

Python---面向对象的综合案例

案例1:定义学员信息类,包含姓名、成绩属性,定义成绩打印方法(90分及以上显示优秀,80分及以上显示良好,70分及以上显示中等,60分及以上显示合格,60分以下显示不及格) 学员…

easyexcel导出报错 java.lang.NoClassDefFoundError: org/apache/poi/POIXMLTypeLoader

报错: org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.NoClassDefFoundError: org/apache/poi/POIXMLTypeLoaderorg.springframework.web.servlet.DispatcherServlet.triggerAfterCompletionWit…

微信小程序-发消息

一、引言 作者开发《目的地到了》的时候需要给用户发消息,一开始用了消息模板,后面上真机才发现微信把这个给取消掉了。后面通知用户都是通过订阅消息 二、前端 调用wx的api,要把模板id传进去,如果用户没有点击过同意会弹出弹窗提…

多人群聊代码

服务端 import java.io.*; import java.net.*; import java.util.ArrayList; public class Server{public static ServerSocket server_socket;public static ArrayList<Socket> socketListnew ArrayList<Socket>(); public static void main(String []args){try{…

MTK平台如何debug A2DP 卡音问题

一 听auido文件 卡音问题首先要听以下3个部分的audio文件 1 .auido dump中的af_mixer_write_pcm_xxx.wav,这是auido传 给A2DP的源文件,如果这里有卡音,可以转给auido的人check • track是AudioTrack送到AudioFlinger的聲音 • mixer_pcm是AudioFlinger處理過程中的聲音 •…

Java多线程技术二:线程间通信——InheritableThreadLocal的使用

1 概述 使用InheritableThreadLocal可以在子线程中取得父线程继承下来的值。 2 ThreadLocal类不能实现值的继承 public class Tools {public static ThreadLocal t1 new ThreadLocal(); } public class ThreadA extends Thread{Overridepublic void run(){try {for (int i…