ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java图形用户界面基础

2020-11-29 17:33:34  阅读:217  来源: 互联网

标签:JFrame Java 基础 FlowLayout 监听器 Swing 组件 jf 图形用户界面


目前,Java关于图形用户界面的开发存在两套API,一个是AWT,一个是Swing。现在大多数时候Java图形用户界面开发指的是Swing的开发。

1、JFrame的作用是什么?该如何使用

一个典型的图形用户界面是一个窗口的形式呈现给用户的,Swing也不例外。其实,JFrame就起到了Swing窗口的作用。
JFrame是Swing创建视窗的一个基础类,它像一个容器一样,可以包含其他的组件进来,是其他组件赖以生存的对象。使用步骤:

  1. 用new语句创建JFrame读写,可以通过构造方法传入视窗标题参数;
  2. 设置窗口关闭时的行为,一般是结束进程;
  3. 设置视窗的外观,例如尺寸、可见与否等;
  4. 为窗口添加其他的组件,例如标签、按钮等;
  5. 必要时还可以添加一些事件,例如WindowListener等。

2、如何创建一个按钮?

按钮是一种最常见的组件。在Swing中,创建一个按钮只需要使用JButton类即可。按钮的文本看通过JButton提供的构造方法提供。JButton是一个组件,有自己的绘图方式,可以在整个界面刷新的时候自动被重绘。

import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;

public class TestJButton {
	public static void main(String[] args) {
		JFrame jf = new JFrame();
		jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		jf.setSize(200,200);//设置窗口大小
		jf.setVisible(true);//是否可见
		jf.setLayout(new FlowLayout());//设置布局格式
		//为窗口添加一个按钮
		JButton jb = new JButton("myButton");//添加一个按钮对象
		jf.add(jb);//把按钮添加到窗口中
		
	}
}

在这里插入图片描述以上代码中,首先创建了JFrame对象,然后把JButton对象添加到了该窗口之中。在添加按钮之前,还设置了JFrame的布局格式,采用的均是FlowLayout,它是一种从左到右,从上到下连续均匀分布的一种布局格式器。如果没有设置布局格式,JFrame是无法直接加入到JButton组件的。

3、如何使用文本输入组件

在图形用户界面开发领域中,根据文本输入的长度不同,一般可分为文本框和文本域输入组件。Swing提供了JTextField来对文本框提供支持,用JTestArea来表示一个文本框。
JTextField代表的是只能单行输入的文本组织,与按钮类似,它只需放在窗口之中就可以自行完成绘制,例子:

import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JTextField;

public class TestText {
	public static void main(String[] args) {
		JFrame jf = new JFrame("Hello Text");
		jf.setLayout(new FlowLayout());
		JTextField jtf = new JTextField(10);//创建一个文本框对象
		jtf.setText("Hello JTextField");
		jf.add(jtf);
		show(jf);
	}
	public static void show(JFrame jf) {
		jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		jf.setSize(200,200);
		jf.setVisible(true);
	}
}

JTextField对象在创建的时候,可以提供一个整型的参数,代表的是该文本框的绘制长度。如果需要为该**文本框赋值的话,需要调用setText()**方法,传入字符串参数即可。运行结果如下图:
在这里插入图片描述
JTextArea也是用于文本输入的组件,与JTextFiled不同的是它允许多行输入,体积往往要比JTextField答一些。用户在JTextArea中按Enter键的时候,字符就出现了换行,代码如下:

import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JTextArea;

public class TestText {
	public static void main(String[] args) {
		JFrame jf = new JFrame("Hello Text");
		jf.setLayout(new FlowLayout());
		JTextArea jta = new JTextArea(5,10);//创建一个文本框对象
		jta.setText("Hello JTextArea");
		jf.add(jta);
		show(jf);
	}
	public static void show(JFrame jf) {
		jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		jf.setSize(200,200);
		jf.setVisible(true);
	}
}

与创建JTextField不同的是,需要输入两个整型参数,代表的是文本域的行数和列数,结果如图:
在这里插入图片描述

3、如何捕获事件?

事件就是一个对象的状态改变了的时候,通知其他对象发生了什么事,让它做出某种反应。
事件模型一般有两种模式,推/拉模式。推模式,状态改变的对象A通知其他对象B,Java的大多数事件模型都属于这一种。拉模式,其他对象B监听感兴趣的对象A。
在一次事件模型中,往往包含了3中角色,时间发生的主体(例如按钮)、监听器和事件。事件发生的主体是事件的起源地,它们的状态一般是随着用户的操作而改变;监听器是一个类,这些类往往都会继承自某个接口;事件代表了一种动作,通过它可以获取到一些用户操作的信息。
在Swing程序中,通过注册监听器的方式来捕获事件。也就是说,组件可以根据需要来添加监听器进行某些事件的监听,其他事件则不予理睬。Swing的事件模型编程思路:

  1. 创建组件对象,如JButton;
  2. 创建实现了监听器接口或继承自适配器类的实现类,实现需要进行相应动作的抽象方法;
  3. 调用组件对象的addXXXListener()方法,为该组件添加某监听器。

4、如何使用BorderLayout布局

BorderLayout是一种最常用的布局方式,是Swing容器的默认布局管理器。BorderLayout是把容器分为东西南北和中间5个部分。除了中间部分,其他几个部分都会贴近容器的边缘,中间被其他四个所包围。
在编程中,通过add()方法把组件安放在指定方向的部位,该方法的第二个参数就是BorderLayout的方位,例如:

jf.add(button,BorderLayout.NORTH);//把一个按钮放在北部

如果只有一个参数,默认放在中间位置。BorderLayout的几种方位变量如下图:
在这里插入图片描述

5、如何使用FlowLayout布局

FlowLayout是另外一种常见的布局方式。FlowLayou就是把组件从左到右排列,当排列到不能排以后就换到下一排。FlowLayout是从容器的中间位置开始从左往右排的。
当某种容器需要使用该布局管理器时,只需要调用setLayout()方法,传入一个FlowLayout对象即可。在加入组件的时候,直接调用add方法,不需要指定其他参数。

6、如何使用GridLayout布局

GridLayout是一种表格式的布局管理器,他把组件按照表格 的方式来存放,从第一行到最后一行。从第一列到最后一列的摆放假如的组件。GridLayout布局管理器对象在创建的时候,调用setLayout()方法,传入一个GridLayout对象即可,GridLayout对象在创建时,需要指定它的行数和列数,这就是表格的大小。

7、Swing事件模型的通用规则是什么

Swing的事件类型比较多,但是都有一个通用的使用和定义规则,主要有以下几点:

  1. 组件都有addXXXlistener()和removeXXXlistener()方法,XXX就代表事件的类型和含义;
  2. XXX事件的监听器都叫做XXXListener;
  3. XXX事件的类名叫做XXXEvent,往往作为XXXListener接口方法中的参数类型。

8、监听器的适配器的作用是什么

Java开发领域有一种开发模式叫做适配器开发,Swing的适配器正是采用这种模式开发的。为了避免代码的冗余,Swing监听器的适配器就是为一些监听器接口的方法提供默认 的空实现,这样开发者就可以直接继承自适配器就好,不必把每一个接口方法都实现。

标签:JFrame,Java,基础,FlowLayout,监听器,Swing,组件,jf,图形用户界面
来源: https://blog.csdn.net/Mr_Carrots/article/details/110311575

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有