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) 设置按钮的悬停提示信息

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

输出:


 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

文件拖拽操作工具 Dropzone 4 最新 for mac

Dropzone 4是一款Mac平台上的应用程序,提供了一个方便快捷的方式来执行各种任务。它可以将常用工具和操作整合到一个简洁的界面中,使用户能够更高效地完成日常工作。 以下是Dropzone 4的一些主要特点: 拖放功能:通过将文件、文件…

拨号连接bat命令和拨号错误623,系统无法找到此连接的电话簿项的解决方法

一、拨号bat命令 1、首先创建一个拨号连接,注意连接名称要使用英文 2、创建一个bat文件,里面内容 echo off chcp 65001rem 定义连接参数,第一个是用户名,第二个是密码 set usernameS11111111111 set passwords11111111111 set…

决战排序之巅(一)

决战排序之巅 插入排序直接插入排序 void InsertSort(int* arr, int n)希尔排序 void ShellSort(int* arr, int n)测试插入排序测试函数 void verify(int* arr, int n)测试 InsertSort测试 ShellSort测试速度 InsertSort & ShellSort 选择排序直接选择排序 void SelectSort…

数据分析基础之《matplotlib(3)—散点图》

一、常见图形种类及意义 1、matplotlib能够绘制折线图、散点图、柱状图、直方图、饼图。我们需要知道不同的统计图的意义,以此来决定选择哪种统计图来呈现我们的数据 2、折线图plot 说明:以折线的上升或下降来表示统计数量的增减变化的统计图 特点&…

vs2022linux应用开发中出现“未定义标识符_Float128“

开发平台包括:Win11、VS2022、WLS2。 当vs2022对应用程序报编译错误时,有时也会报以下信息: 但应用程序没有编译错误后,上述信息不再出现。

解析100G QSFP28 ER4光模块:超越传统光纤传输限制

科技的进步和数据中心的快速发展,使得高速光通信模块的需求也在不断增长。100G QSFP28 ER4光模块作为一种新型的高速光通信模块,正逐渐受到广泛关注。前几期文章内容我们了解了40G ER4 系列光模块产品,今天跟随小易来看看更高速率的100G ER4光…

Linux中的网络时间服务器

本章主要介绍网络时间的服务器 使用chrony配置时间服务器配置chrony客户端服务器同步时间 1.1 时间同步的重要性 一些服务对时间要求非常严格,例如如图所示的由三台服务器搭建的ceph集群 这三台服务器的时间必须保持一致,如果不一致,就会显…

小白学Java之数组问题——第三关黄金挑战

内容1.数组中出现次数超过一般的数字2.数组中出现一次的数字3.颜色分类问题 1.数组中出现次数超过一半的数字 这是剑指offer中的一道题目,数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 例如:输入如下所示的一个长度为9…

探索鸿蒙 Image图片显示组件

Image 声明Image组件并设置图片源 Image(src: stirng|PixelMap|Resource) string 通常用于加载网络图片,需要申请网络访问权限:ohos.permission.INIERNET Image(https://xxx.png)PixelMap 可以加载像素图,常用在图片编辑中 Image(pixelMapObject) 使用…

【离散数学】——期末刷题题库(等价关系与划分)

🎃个人专栏: 🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客 🐳Java基础:Java基础_IT闫的博客-CSDN博客 🐋c语言:c语言_IT闫的博客-CSDN博客 🐟MySQL&#xff1a…

androidstudio设置内存

androidstudio一直 scanning files to index,需要去设置内存: 操作如下:

ES6初步了解迭代器

迭代器是什么? 迭代器(iterator)是一种接口,为各种不同的数据结构提供统一的访问机制。任何数据结构只要部署 iterator 接口,就可以完成遍历操作 ES6创造了一种新的遍历方法for…of循环,iterator 接口主要供 for…of 使用 原生中具…