要在java中创建GUI,有两个工具包: AWT和Swing。
Swing是AWT的扩展,Swing比AWT有更丰富的组件和方法。
可以在跨平台上使用AWT和Swing。awt的UI样式因系统平台而异,但swing则不然。 设计完成后,所有平台上的样式都匹配。
import java.awt.*;
import javax.swing.*;
@H_404_8@一个awt样本
以下是一个窗口示例
import java.awt.*;
publicclassmyframeextendsframe {
公共我的帧() {
super (测试);
setsize (400,200;
设置可见(true;
}
publicstaticvoidmain (string args [ ] ) {
新my frame (;
}
}
创建继承Frame的窗口,并继承Frame的几种方法;
帧中:
super方法可以设置窗口标题;
设置setSize窗口大小。 (width,hight ) )。
setVisible设置是否显示窗口,true显示,false隐藏
设置布局(新流量) ); 用于设定窗口布局;
添加(组件); 用于将按钮等组件添加到窗口中。
在窗口中添加组件
import java.awt.*;
publicclassmyframeextendsframe {
公共我的帧() {
super (测试);
设置布局(新流量) );
buttonBTN=newButton('Button );
Font f=new Font ('宋体',Font.BOLD,28 );
BTN.setfont(f;
添加(BTN );
setsize (400,200;
设置可见(true;
}
用main方法启动窗口
publicstaticvoidmain (string args [ ] ) {
新my frame (;
}
活动
在java中,事件分为三个方面进行描述。
事件源:发生事件的对象
事件处理:委托事件处理模型
事件侦听器:负责处理事件
首先,b监听a,设定监听的内容,设定应答内容。
a自身状态改变时,触发c;
c执行d
妈妈对儿子说,做完你的作业后,妈妈会给爸爸削苹果给你吃。
母亲:事件监视者
儿子:案源
动作:完成作业
事件:爸爸削苹果给了儿子
妈妈监视儿子,监视作业是否完成。 安装工作完成后,触发活动:削苹果;
儿子完成作业,状态改变,事件触发; 事件开始执行。
简而言之,b告诉a,如果a怎么样,就去做一件事c。
实现事件流
继续利用上面的窗口,实现在点击按钮时改变窗口的背景颜色。
实现一个事件
引进
导入Java.awt.event.action listener;
实现接口
classtestimplementsactionlistener {
公共语音性能(活动事件活动) {
System.out.println ('运行作业');
}
在控件中注册事件
package com.company;
import java.awt.*;
import Java.awt.event.actionevent;
导入Java.awt.event.action listener;
publicclassmyframeextendsframeimplementsactionlistener {
公共我的帧() {
super (测试);
设置布局(新流量) );
buttonBTN=newButton('Button );
Font f=new Font("宋体",28);
btn.setFont(f);
btn.addActionListener(this::actionPerformed);
add(btn);
setSize(400,200);
setVisible(true);
}
public void actionPerformed(ActionEvent actionEvent) {
System.out.println("执行工作");
setBackground(Color.BLUE);
}
}
按钮有个事件监听器 addActionListener,我们将要执行的工作 actionPerformed 绑定进去。
当条件发生时,就会触发此工作。
妈耶,我都不知道自己在说啥了。
C# 中,事件没有那么麻烦,也不需要这么BB。。。
另外, actionEvent ,有两个常用方法
actionEvent.getActionCommand();// 获取对象名称
actionEvent.getSource()();// 获取源对象
布局
AWT 中,主要有 6 中布局方式。
FlowLayout 流式布局
默认布局,控件从上到下,从左到右地排序。
BorderLayout 边缘布局
自动停靠窗体边缘,并且长宽随着窗体的变化。
GridLayout 网格布局
将容器分成若干行和若干列。
CradLayout 卡片布局
像扑克牌一样,每张牌是一个控件,多个控件叠加起来,每次只能查看一个。
GridBagLayout 网格块布局
null 采用坐标定位布局
创建一个窗体,并设置流式布局
public class MyFrame extends Frame {
public MyFrame(){
super("测试");
setLayout(new FlowLayout());
}
}
继承 Frame 的窗体中,使用 setLayout方法 可以设置布局。
组件方法
如图是 GUI 控件中常用的控件关系继承图。
组件分为容器(Container)和控件。
容器又分为窗体(Window)和面板(Panel)。
Component 是所有组件的父类,Component 常用方法如下
Component类(抽象类)主要方法
Color getBackground() : 获取部件的背景色
Font getFont() : 获取部件的显示字体
Graphics getGraphics(): 获取部件的Graphics属性对象
void setBackground(Color c) : 设置部件的背景
void setEnabled(boolean b) : 是否让部件功能有效
void setFont(Font f) : 设置部件的显示字体
void setSize(int width,int height) : 设置部件大小
void setVisible(boolean b) : 设置部件是否可见
void setForeground(Color c) : 设置部件的前景色
Tookit getToolkit() : 取得图形部件的工具集(Toolkit)
void requestFocus() : 让部件得到焦点
void add(PopupMenu popup) :给部件加入弹出菜单
常用控件
文本
文本框(TextField)只能显示一行文本,文本域(TextArea)则可以显示、编辑多行文字。
文本框的构造函数如下
TextField():构造一个单行文本输入框。
TextField(int):指定长度的单行文本输入框。
TextField(String):指定初始内容的单行文本输入框。
TextField(String,int):指定长度、指定初始内容。
文本域的构造函数如下
TextArea( ):构造一个文本域。
TextArea(int,int):构造一个指定长度和宽度的文本域。 TextArea(String):构造一个显示指定文字的文本域。
TextArea(String,int,int):按指定长度、宽度和默认值构造文本域。
文本控件的常用方法有
void setEchoChar(‘*’) 设置回显字符
String getText( ) :获取输入框中的数据
void setText(String s) :往输入框写入数据
boolean isEditable( ):判断输入框是否可编辑。
void select(int start,int end):选定由开始和结 束位置指定的文本。 void selectAll( ):选定所有文本。
文本域(TextArea)中,还具有以下两个常用方法
append(String s):将字符串添加到文本域的末尾
insert(String s,int index):将字符串插入到文本域的指定位置
文本框有两个常用事件
ActionEvent事件
在文本框按回车键时引发
注册:addActionListener() 接口:ActionListener
方法:public void actionPerformed(ActionEvent e)
TextEvent事件
对文本输入部件数据更改操作 (添加、修改、删除)
注册: addTextListener()
接口:TextListener
方法: public void textValueChanged(TextEvent e)
相关文章
总结
以上是编程之家为你收集整理的java GUI 快速入门全部内容,希望文章能够帮你解决java GUI 快速入门所遇到的程序开发问题。
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250