JavaGUI界面—窗口、按钮、文本框,及其解决按钮的中文乱码

article/2025/8/19 20:24:54

一. Java图形化界面开发概述

通常情况下,java语言一般是用来开发后台程序的,所谓的后台程序就是部署在服务器端的程序,默默的工作,用户是看不到任何界面的。

事实上,我们使用java语言同样可以完成图形化界面程序的开发,而学习图形化界面编程相对来说就会有趣很多,因为所见即所得,也就是说,我们写的大部分代码的执行效果,是可以通过图形化界面实实在在能够看得到的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dvCN3l5U-1611909625964)(./images/图形化界面.gif)]

java使用AWT和Swing相关的类可以完成图形化界面编程,其中AWT的全称是抽象窗口工具集(Abstract Window Toolkit),它是sun公司最早提供的GUI库,这个GUI库提供了一些基本功能,但这个GUI库的功能比较有限,所以后来sun公司又提供了Swing库。通过使用AWT和Swing提供的图形化界面组件库,java的图形化界面编程非常简单,程序只需要依次创建所需的图形组件,并以合适的方式将这些组件组织在一起,就可以开发出非常美观的用户界面。

二. AWT 编程

2.1 AWT简介

​ 当 JDK 1.0发布时, Sun 提供了 一套基本的GUI类库,这个GUI类库希望可以在所有平台下都能运行 , 这套基本类库被称为"抽象窗口工具集 CAbstract Window Toolkit )",它为Java应用程序提供了基本的图形组件 。 AWT是窗口框架,它从不同平台的窗口系统中抽取出共同组件 , 当程序运行时,将这些组件的创建和动作委托给程序所在的运行平台 。 简而言之 ,当使用 AWT 编写图形界面应用 时, 程序仅指定了界面组件的位置和行为,并未提供真正的实现,JVM调用操作系统本地的图形界面来创建和平台 一致的对等体 。

​ 使用AWT创建的图形界面应用和所在的运行平台有相同的界面风格 , 比如在 Windows 操作系统上,它就表现出 Windows 风格 ; 在 UNIX 操作系统上,它就表现出UNIX 风格 。 Sun 希望采用这种方式来实现 " Write Once, Run Anywhere " 的目标 。

2.2 AWT继承体系

所有和 AWT 编程相关的类都放在 java.awt 包以及它的子包中, AWT 编程中有两个基类 :Component和 MenuComponent。

  • Component:代表一个能以图形化方式显示出来,并可与用户交互的对象,例如 Button 代表一个按钮,TextField 代表 一个文本框等;
  • MenuComponent:则代表图形界面的菜单组件,包括 MenuBar (菜单条)、 Menultem (菜单项)等子类。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BCFoz6kT-1611909625968)(./images/AWT组件继承体系.png)]

其中 Container 是一种特殊的 Component,它代表一种容器,可以盛装普通的 Component。

AWT中还有一个非常重要的接口叫LayoutManager ,如果一个容器中有多个组件,那么容器就需要使用LayoutManager来管理这些组件的布局方式。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MwfORPvz-1611909625972)(./images/LayoutManager.png)]

2.3 Container容器

2.3.1 Container继承体系

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Jx4UGDyf-1611909625975)(./images/Container继承体系.png)]

  • ​ Winow是可以独立存在的顶级窗口,默认使用BorderLayout管理其内部组件布局;
  • ​ Panel可以容纳其他组件,但不能独立存在,它必须内嵌其他容器中使用,默认使用FlowLayout管理其内部组件布局;
  • ​ ScrollPane 是 一个带滚动条的容器,它也不能独立存在,默认使用 BorderLayout 管理其内部组件布局;

2.3.2 常见API

Component作为基类,提供了如下常用的方法来设置组件的大小、位置、可见性等。

方法签名方法功能
setLocation(int x, int y)设置组件的位置。
setSize(int width, int height)设置组件的大小。
setBounds(int x, int y, int width, int height)同时设置组件的位置、大小。
setVisible(Boolean b):设置该组件的可见性。

Container作为容器根类,提供了如下方法来访问容器中的组件

方法签名方法功能
Component add(Component comp)向容器中添加其他组件 (该组件既可以是普通组件,也可以 是容器) , 并返回被添加的组件 。
Component getComponentAt(int x, int y):返回指定点的组件 。
int getComponentCount():返回该容器内组件的数量 。
Component[] getComponents():返回该容器内的所有组件 。

2.3.3 容器演示

2.3.3.1 Window

​	[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Pq2EXWIo-1611909625977)(./images/FrameDemo.jpg)]

import java.awt.*;public class FrameDemo {public static void main(String[] args) {//1.创建窗口对象Frame frame = new Frame("这是第一个窗口容器");//设置窗口的位置和大小frame.setBounds(100,100,500,300);//设置窗口可见frame.setVisible(true);}
}

2.3.3.2 Panel

​	[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FwQmLTet-1611909625978)(./images/PanelDemo.jpg)])

public class PanelDemo {public static void main(String[] args) {//1.创建Frame容器对象Frame frame = new Frame("这里在测试Panel");//2.创建Panel容器对象Panel panel = new Panel();//3.往Panel容器中添加组件panel.add(new TextField("这是一个测试文本"));panel.add(new Button("这是一个测试按钮"));//4.把Panel添加到Frame中frame.add(panel);//5.设置Frame的位置和大小frame.setBounds(30,30,500,300);//6.设置Frame可见frame.setVisible(true);}
}

为什么其中出现乱码了呢?
由于IDEA默认使用utf-8进行编码,但是当前我们执行代码是是在windows系统上,而windows操作系统的默认编码是gbk,所以会乱码,如果出现了乱码,那么只需要在运行当前代码前,设置一个jvm参数 -Dfile.encoding=gbk即可。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.3.3.3 ScrollPane

​	[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Brc4iPOH-1611909625981)(./images/ScrollPaneDemo.jpg)]

import java.awt.*;public class ScrollPaneDemo {public static void main(String[] args) {//1.创建Frame窗口对象Frame frame = new Frame("这里测试ScrollPane");//2.创建ScrollPane对象,并且指定默认有滚动条ScrollPane scrollPane = new ScrollPane(ScrollPane.SCROLLBARS_ALWAYS);//3.往ScrollPane中添加组件scrollPane.add(new TextField("这是测试文本"));scrollPane.add(new Button("这是测试按钮"));//4.把ScrollPane添加到Frame中frame.add(scrollPane);//5.设置Frame的位置及大小frame.setBounds(30,30,500,300);//6.设置Frame可见frame.setVisible(true);}
}

程序明明向 ScrollPane 容器中添加了 一个文本框和一个按钮,但只能看到 一个按钮,却看不到文本框 ,这是为什么 呢?这是因为ScrollPane 使用 BorderLayout 布局管理器的缘故,而 BorderLayout 导致了该容器中只有一个组件被显示出来 。


http://chatgpt.dhexx.cn/article/U3Q2e6uq.shtml

相关文章

Java GUI编程1---AWT简介

图形用户界面特征 图形用户界面(GUI)编程主要有以下几个特征: 图形界面对象及其框架(图形界面对象之间的包含关系)图形界面对象的布局(图形界面对象之间的位置关系)图形界面对象上的事件响应(图形界面对象上的动作) 在Java图形界面开发中有两种可使用的技术&…

Java图形化界面编程之——AWT

目录 1、AWT简介 2、AWT继承体系 3、Container容器 3.1、Container继承体系 3.2、常用API 3.2.1、Component的常用方法 3.2.2、Container的常用方法 3.3、容器演示 3.3.1、Window 3.3.2、Panel 3.3.3、ScrollPane 4、LayoutManager布局管理器 4.1、FlowLayout&…

Putty的使用及登录

Putty的使用及登录 Putty作为一个很方便并且免费的工具,下面就教大家如何下载并且进行免密登录 下载 https://www.putty.org/ 安装完成后会有如下几个选项,这里简单做一下介绍,第一个是秘钥生产工具,第二个是连接工具&#xff0c…

使用putty连接Linux

修改显示行数: 修改字体: 修改中文显示:

putty使用方法~SSH等

我的这些文字是从这几年来的 PuTTY 使用经验中慢慢得来的,也不仅仅是介绍 PuTTY,还包括了一些相关的软件,比如:优秀的 FTP 工具 FileZilla、功能强大的 SFTP 客户端 WinSCP。 杂七杂八的乱说了一些,这里把大致内容罗列…

怎样用putty设置SSH tunnel

http://davihigh.spaces.live.com/blog/cns!E64F2DAC77562C4F!115.entry 怎样用putty设置SSH tunnel 凡是不晓得SSH为何物的朋友可以略过,也可以google SSH开始了解它。这儿不重复了。SSH tunnel的功能简单说来,就是实现A主机XXX端口跟B主机YYY端口之间…

putty linux上安装及使用

方法1. 用的是debian类系统,可以直接用源里的putty 安装更简单 apt-get install putty 方法2.编译安装 官网下载地址 https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html 使用 filezilla 工具将文件上传到Linux 系统中 解压…

PuTTY介绍、安装及使用详细过程

#安装PuTTY并使用教程 ##PuTTY简介 PuTTY是一个Telnet、SSH、rlogin、纯TCP以及串行接口连接软件。较早的版本仅支持Windows平台,在最近的版本中开始支持各类Unix平台,并打算移植至Mac OS X上。除了官方版本外,有许多第三方的团体或个人将PuT…

PuTTy:PuTTy的简介、安装、使用方法之详细攻略

PuTTy:PuTTy的简介、安装、使用方法之详细攻略 目录 PuTTy的简介 Putty设置中文方法 PuTTy的安装 PuTTy的使用方法 PuTTy的简介 Window操作系统需要连接网络,下载PuTTy程序。PuTTY是一个串行接口连接软件,多用于远程登录控制功能。PuTTY现…

使用PuTTY连接远程Linux服务器

PuTTY软件 putty 简介 简单的说 putty 是一个开源程序,用来连接服务器。最早的时候,仅仅在window系统上可以使用,后来在其他的系统上也可以运行,比如 类unix, mac 。putty 不仅仅是一个软件而是一个软件集(文章最后会列出这个软…

Putty串口使用技巧

Implicit CR in every LF:大部分机器在进行换行时,会送出 CR (回车,0x0D) 与 LF(换行,0x0A)两个控制子元,但是某些机期却只会发出 LF,当有此情况时,你可以试着打开此选项。Implicit LF in every…

Putty 可以使用在Mac系统吗?

PuTTY是一个Telent、SSH、rlogin等连接软件。在windows上非常常见切流行。如果你做路由器刷机,或者看相关教程,肯经经常见到。PuTTY用作SSH客户端连接您的Linux服务器。 但是,如果在Mac上,你会怎么做?那我们今天看看在…

PuTTY 中文教程

转载自:http://chaifeng.com/blog/2007/06/putty_200611.html PuTTY 中文教程 更新记录版权声明序言一些基本知识简介安装第一印象,开始登录一台远程主机首次登录一台主机时又看到了中文乱码怎么还是乱码?在 PuTTY 里面怎样选中,…

putty的用法

大致内容罗列如下: 最简单的使用,登录 SSH主机 中文乱码的处理 PuTTY常用配置的说明 复制、粘贴 保存会话 注销 PuTTY的 X11转发 如何用 PuTTY建立 SSH隧道 如何用 PuTTY建立反…

Putty使用技巧

PuTTY的选择、复制、粘贴这些操作都是通过鼠标来完成的。 在 Window-〉Selection 这里可以设置复制和粘贴的方式。 默认的 Action of mouse buttons (鼠标按键的功能)的选项是 Compromise,这种方式下选中有两种方式,一是直接用鼠标…

putty下载安装教程

putty下载安装教程 介绍: PuTTY是一款开源(Open Source Software)的连接软件,主要由Simon Tatham维护,使用MIT许可证授权。包含的组件有:PuTTY, PuTTYgen,PSFTP, PuTTYtel, Plink, PSCP, Pageant,默认登录协议是SSH,默…

putty使用教程(总结)

putty使用教程(总结) 最近开始使用putty,在网络上看到一份很不错的教程,共享一下:putty使用方法,中文教程序言 大致内容罗列如下: 最简单的使用,登录 SSH 主机中文乱码的处理PuTTY 常用配置的说明 复制、粘…

PuTTY使用方法

Putty是一个免费的、Windows 32平台下的telnet、rlogin和ssh客户端,在各种远程登录工具中,Putty是出色的工具之一,Putty具有完全免费、小巧绿色、无需安装、操作简单等特点。其功能丝毫不逊色于商业的telnet类工具,用它来远程管理…

putty的安装使用

putty的安装使用 在Ubuntu系统中输入命令只能手动输入,可以用putty登陆Ubuntu系统,把敲好的命令复制粘贴就可以啦 1、下载putty 打开浏览器,在网页上搜索putty,位于榜首的网站,即是putty的官网,进入官网&a…

Putty 安装配置使用

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言一、Putty 下载安装二、Putty 配色方案配置1.Save Session2.Putty注册表设置2.1. 打开注册表2.2. 找到对应的注册表文件2.3. 导出注册表文件,编辑&#…