IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Java学习12——书本自学 -> 正文阅读

[系统运维]Java学习12——书本自学

第13章? ? ? ? 图形界面设计

图形用户界面是应用程序与用户交互的窗口,利用它可以接受用户的输入并向用户输出程序运行的结果。

13.·1? 用户图形界面介绍

图形用户界面(GUI)是指用图形的方式,借助菜单、组件等标准界面元素和组件操作,帮助用户方便地向计算机系统发出指令、启动操作,并将系统操作运行结果以图形方式展现给用户的技术。

Java语言提供了两个处理图形用户界面的包:java.awt包和javax.swing包。

AWT是抽象窗口工具集Abstract Window Toolkit的缩写。但是,Java语言图形绘制组件并不是完全“平台独立”的,因此使用AWT包所编写的层序很可能在不同操作系统上有不一样的显示。

Swing为Java程序增添了一种新的能力,它可以根据一个给定环境而调整他们的外观和感觉,使得一个程序可以同时应用于多种操作平台,这种跨平台的灵活性使Java语言突显其网络编程方面游刃有余的功力。

随着时间的推移,使得swing成为一个带有丰富组件的一些组件,因此它成为JFC(Java Foundation Class)用户界面的功能核心部分。

13.2 图形用户界面工具包——Swing

设计Java图形用户界面的基本元素主要由图形用户界面包Swing提供。包括用户界面组件、事件处理模型、图形和图像工具、布局管理器等。

13.2.1? Swing组件分类

Java语言中构成GUI的各类元素称为组件(component)。构建GUI的类可以分为三组:容器类(container class)、辅助类(helper class)和组件类(component calss)。

WIndows类是可以自由移动的、不依赖其他容器而存在的窗口。Windows类有主要两个子孙类:窗口框架JFrame和对话框JDialog。JFrame是一种带标题栏并且可以改变大小的窗口,而JDialog则是一种带有标题栏但不能改变大小的窗口,JPanel类与窗口类似,是一宗没有标题的容器,且不能独立存在,必须包含在另外一个容器之中,如包含在JFrame和Web浏览器窗口中。

1.Swing容器的层次关系

JFrame、JApplet和JDialog继承其重型组件的所有功能,具有更为复杂的结构。一般的Swing窗口,实际上包含几个“层次”。

1)顶层容器(Top Level Container)

顶层容器是一个窗口容器对象,该对象中包含了Swing窗口的各个层次,在该对象里可以加入其他窗口对象。

2)根窗格(Root Pane)

根窗格是一个轻型容器,它是在创建顶层容器后自动创建的,供Swing顶层容器在后台使用,它是顶层容器中所包含的最内层,通常无法在这一层上做任何操作和处理。

3)分层窗格(Layered Pane)

加入分层窗格的组件可以设置其图形层次,且不会被内容窗格中的对象屏蔽。在分层窗格中的对象还可以设置其图层层次高低,图层层次较高的对象和图层层次较低的对象重叠时,层次低的对象会被屏蔽。这一层主要用于管理菜单栏和内容窗格。

4)内容窗格(Content Pane)

内容窗格是Container的一个实例,默认状态下他是一个具有BorderLayout布局管理器的JPanel对象。大部分的可见组件都放在内容窗格中。

5)玻璃窗格(Glass Pane)

在玻璃窗格这一层次上主要是用来产生绘图效果,以及触发窗口程序的各种事件。玻璃窗格浮在最上面,默认情况下是隐藏的。

2.框架类JFrame

图标对象语句语法:

Image iconImage=( new ImageIcon(filename)).getImage();

//filename:App13_1.java
import java.awt.Color;
import java.awt.Image;
import javax.swing.*;
public class App13_1
{
	static JFrame jfrm=new JFrame(" This is a swing program");
	public static void main(String[] args)
	{
		JLabel lab=new JLabel("I'm a label.");
		Image im=(new ImageIcon("zhong_guo_xin.jpg")).getImage();
		jfrm.setIconImage(im);
		jfrm.setSize(250,140);
		jfrm.setBackground(Color.YELLOW);
		jfrm.setLocation(260,150);
		jfrm.add(lab);
		jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		jfrm.setVisible(true);
	}
}

3.面板类JPanel

面板是一种没有标题栏、没有边框的中间层容器,当然可以利用相应的方法为它添加边框。

JPanel类有如下优点:
JPanel不是顶层容器,它必须放入窗口或其他容器之内。

JPanel提供可以容纳其他组件的支持,在程序中经常用于布局和定位。

默认的布局管理器是FlowLayout,可,可使用setLayout()犯法改变其默认布局管理器。

作为JComponent的子类,JPanel可以使用JCompnent的优点,如双缓存技术和边框等。

4. 组件类

组件又称为控制组件,简称控件。与容器不同,组件类对象里面不能再包含其他组件。组件的作用是完成与用户的交互,包括用户的命令、接受用户输入的文本或用户的选择、向用户现实文本或图形等。

5.图形用户界面设计的步骤7

实现界面的工作主要有以下几点:

创建组件——创建组成图形界面的各种元素,如按钮、文本框等;

指定布局——根据具体需要排列图形界面上各元素的位置。

响应事件——定义图形用户界面的事件和各界面元素对不同事件的相应,从而实现图形用户界面的交互功能。

13.2.2 颜色类Color、字体类Font与图标类ImageIcon

1、颜色类Color

颜色类Color是java.awt包中常用的类之一,在Java语言中每一种颜色都看称是由红R、绿G、蓝B三原色组成,因此Color类的构造方法采用如下格式:

Color(int r,int g,int b)

2.字体类Font

字体类Font是java.awt包里的,是用来设置组件所用字体的样式、大小与字形等属性的。

Font(String font_name,int style, int size)

3. 图标类ImageIcon

图标是大小固定的图像,Java语言Javax.swing.ImageIcon类表示图标。图标通常情况下而且用来装饰组件。

13.3 创建组件

有了窗口之后,还要创建其他组件,然后将其添加到窗口。

13.3.1 标签JLabel

标签是用来在窗口中现实文字或图像的控件。

//filename:App13_4.java
import java.awt.*;
import javax.swing.*;
public class App13_4
{
	public static void main(String[] args)
	{
		JFrame jfrm=new JFrame("label class window");
		JLabel jlab=new JLabel("I'm a label",JLabel.CENTER);
		jfrm.setLayout(null);
		jfrm.setSize(300,200);
		Container c=jfrm.getContentPane();
		c.setBackground(Color.PINK);
		jlab.setOpaque(true);
		jlab.setBackground(Color.YELLOW);
		jlab.setForeground(Color.RED);
		jlab.setLocation(80,60);
		jlab.setSize(130,30);
		jlab.setToolTipText("I'm set to opaque.");
		Font fnt=new Font("Serief",Font.BOLD+Font.ITALIC,20);
		jlab.setFont(fnt);
		jfrm.add(jlab);
		jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		jfrm.setVisible(true);
	}
}

13.3.2? 命令按钮JButton、复选框JCheckBox和单选按钮JRadioButton

1. 命令按钮JButton

命令按钮是窗口程序设计中最常用的控件之一,用户可以用鼠标单击来控制程序运行的流程。

//filename:App13_5.java
import javax.swing.*;
public class App13_5 extends JFrame
{
	public static void main(String[] args)
	{
		App13_5 jfrm=new App13_5();
		jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		ImageIcon ic=new ImageIcon("github.ico");
		JButton btn=new JButton("github",ic);
		jfrm.setLayout(null);
		jfrm.setSize(200,180);
		jfrm.setTitle("button class window");
		btn.setBounds(50,45,100,40);
		btn.setToolTipText("I'm a button");
		jfrm.add(btn);
		jfrm.setVisible(true);
	}
}

2.复选框JCheckBox和单选按钮JRadioButton

复选框和单选框按钮是让用户选取项目的一种组件,用户利用该组件来获得相应的输入。它具有状态属性,用户可以通过鼠标单击操作来设置其状态为选中或非选中。

13.3.3 文本编辑组件 JTextField、JPasswordField、JTextArea与滚动窗格JScrollPane

文本编辑组件时可以接收用户的文本输入并具有一定编辑功能的界面元素。这些编辑功能包括修改、删除、复制、粘贴等。文本编辑组件分为三种:第一种时单行文本编辑组件,简称文本行,也称文本框,时通过JTextField类实现;第二种是密码文本行组件,是通过JPasswordField类实现的;第三种是多行文本编辑组件,简称文本区。

1.文本行组件JTextField

文本行组件习惯上也称为文本框,是一个能够接收用户键盘输入的文本编辑组件。

Java语言用TextField类来创建文本框。

2.密码文本行组件JPasswordField

密码文本行组件JPasswordField类的构造方法与JTextField的构造方法相同,只是密码文本行类的构造方法名为JPasswordField。

3.文本区组件JTextArea与滚动窗格JScrollPane

//filename:App13__7.java
import javax.swing.*;
public class App13_7 extends JFrame
{
	JTextField jtf=new JTextField("The text box is not editable",30);
	static JPasswordField jpf=new JPasswordField("astronaut 3",30);
	public App13_7(String str)
	{
		super(str);
		jtf.setBounds(20,40,140,20);
		jtf.setEditable(false);
		add(jtf);
	}
	public static void main(String[] args)
	{
		App13_7 frm=new App13_7("Text editing function window");
		JTextArea jta=new JTextArea("hello",10,30);
		JScrollPane jsp=new JScrollPane(jta);
		frm.setLocation(200,150);
		frm.setSize(240,220);
		frm.setLayout(null);
		jsp.setBounds(20,70,160,100);
		jpf.setBounds(20,10,140,20);
		frm.add(jpf);
		frm.add(jsp);
		char[] password=jpf.getPassword();
		String str=new String(password);
		System.out.println("Today's password is: "+password+" convert it to str shows:"+str);
		frm.setVisible(true);
		frm.setResizable(false);
		frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}

13.3.4? 选项卡窗格JTabbedPane

选项卡窗格在Swing中是由JTabbedPane类实现,选项卡窗格中允许包含有多个选项卡,可以把多个组件放在多个不同选项卡中,从个人使页面不致拥挤,其选项卡的形式也能为程序增色不少。

用户只需要点击每个选项卡的标题,就可以切换到不同的选项卡。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-09-19 08:21:07  更:2021-09-19 08:22:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 16:41:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码