Swing 编程

更新时间:2023-07-18 20:16:04 阅读: 评论:0

JavaSwing编程
理解什么是GUI/设计GUI基本界面/理解事件类和接口/学习使用部件按钮,标签,列表,文本框,面板/学会处理鼠标和键盘事件/使用基本的布局管理器。
GUI是由N多的部件构成的,这些部件叫Components, 也叫Gadget(神探加吉特那个词)。这些部件有JLabel/JTextField/JButton/JCheckBox/JComboxBox/JList/JPanel。它们构成了界面。这些部件在屏幕上的排列顺序由LayoutManager负责管理,再加上MenuMenu Bar就构成了完整的用户界面。
用户界面只是一个外观。界面是为了完成和用户的交互任务。用户可以用Mou/KeyBoard/甚至是Voice 。界面取得用户输入事件后传给相应的Listener类对象,由这些特殊的Listener响应事件,这些Listener是一些接口(Interface),接口中有一些必须超越的方法。事件发生后,这些被超越的方法自动调用以完成交互任务。
9.1Swing概况
(1)Swing由纯Java写成,可移植性好,外观在不同平台上相同。所以Swing部件称为轻量级
组件
(2)AWT部件和平台紧密相关,各种平台它们的外观不尽相同,所以称重量级组件,通用性差。
注意,某些Swing部件还是重量级的,比如 JFrameJApplet
有寓意的男孩名字
java.lang.object
ponent
ainer
java.swing.JComponent
JAVAGUI部件都是Component,都有paint repaint update方法
初一年级英语Container请假条表格模板是一个集合,里面放了各种的GUI部件,而我们常用的Contentpane就是一个Container对象
请大家注意J2SDK中的Components/
container/Jcomponet的方法,这些方法是所有部件共有的。
Swing 部件继承图
JComponent的好处
1
自定义Look and Feel外观。
2
WINDOWS一样的快捷键
3
通用事件处理方法国外励志电影
4
工具条停留提示
5
根据不同国别进行本地化处理localization
9.2 JLabel大家看程序吧!:)
//jlabel演示程序
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class LabelTest extends JFrame {
private JLabel label1, label2, label3;

public LabelTest()//构造方法
{
super( "测试标签" );
Container container = getContentPane();
container.tLayout( new FlowLayout() );

label1 = new JLabel( "我的标签" );//构造方法一,用字符串构造
label1.tToolTipText( "这里是提示!" );//鼠标停留时的提示
container.add( label1 );

Icon bug = new ImageIcon( "bug1.gif" );//创建一个指向图片的引用。
//Icon是一个接口,而ImageIcon是实现了Icon接口的一个类,可以存放一幅图片。这幅图片可以是gif/jpg/png格式,并且放在当前目录下。大家注意,如果目录不对图像根本不显示也不出错。很头疼的!
label2 = new JLabel( "带图片的标签",bug, SwingConstants.LEFT );//三个参数,第二个是一个Icon引用,第三个是文本的对齐方式。
label2.tToolTipText( "标签提示之二" );//这个大家已经看过了。
container.add( label2 );
//构造也可以没有参数,当然啦!然后把文本图像一个一个加进去,简单!
label3 = new JLabel();
label3.tText( "带图像底边对齐的东西" );
label3.tIcon( bug );
label3.tHorizontalTextPosition( SwingConstants.CENTER );//文本水平方向中对齐,
label3.tVerticalTextPosition( SwingConstants.BOTTOM );//文本直方向底对齐
label3.tToolTipText( "这是提示三" );
container.add( label3 );
tSize( 275, 170 );//不用这两句窗口不可见大小是零。
tVisible( true );
}

public static void main( String args[] )
{
LabelTest application = new LabelTest();
application.tDefaultCloOperation(JFrame.EXIT_ON_CLOSE );//适宜造句用这句就不用调用 WindowAdapter了,省代码啊!
}

} // end曾海,改编自javaHowToPragram 4th Edtion,仅作教学用途
9.4 事件处理模型
事件处理有三部份主要内容:
(!)事件对象。它表示事件的内容,对象内部封装了一个对事件源eventSource的引用和其它信息。
2风险研判报告) 事件源 . 哪个component上发生了事件?这就是事件源。一个部件必然有相应的事件。
3Listener 。事件发生了谁来处理?是实现某个Listener的一个对象。这个对象有专门的方法处理事件,比如actionPerformed 。具体在哪个部件上发生事件后由哪个Listener对象处理必须事前用部件名.addXXXXXLister进行注册。这也称为事件委任(event delegation)
9.5 JTextField/JPasswordFIeld
不多说,看例子!
最美舞者//文本和密码演示程序
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class TextFieldTest extends JFrame {
private JTextField textField1, textField2, textField3;
private JPasswordField passwordField;//说明成成员全类使用。
public TextFieldTest()
{
super( "测试 JTextField JPasswordField" );
Container container = getContentPane();
container.tLayout( new FlowLayout() );//先用FLOW,下节课讲BorderLayout
textField1 = new JTextField( 10 );//一个参数,用于 指定长度
container.add( textField1 );
textField2 = new JTextField( "请输入值!" );//一个参数,用于指定text里的 初始值
container.add( textField2 );

textField3 = new JTextField( "不可以改的textfield", 20 );//一个设长度一个设初始串
textField3.tEditable( fal );//不可以编缉。
container.add( textField3 );

passwordField = new JPasswordField( "看不见物" );//建立密码框。
container.add( passwordField );

TFH handler = new TFH();// 这是注册语句,用于注册listener,这里全是handler
textField1.addActionListener( handler );
textField2.addActionListener( handler );
textField3.addActionListener( handler );
passwordField.addActionListener( handler );

tSize( 325, 100 );
tVisible( true );
}

public static void main( String args[] )
{
TextFieldTest application = new TextFieldTest();
application.tDefaultCloOperation( JFrame.EXIT_ON_CLOSE );
}

// 私有内部类用于处理事件,它必须实现actionlistner并且超越actionperformed方法
private class TextFieldHandler implements ActionListener {

// 必须写,不写就错。因为接口方法是abstract
public void actionPerformed( ActionEvent event )
{
String string = "";
if ( Source() == textField1 )
string = "字段一1: " + ActionCommand();// 这句取得输入的串

el if ( Source() == textField2 )
string = "字段2 " + ActionCommand();

el if ( Source() == textField3 )
string = "字段3: " + ActionCommand();//
// 取得密码
el if ( Source() == passwordField ) {
JPasswordField pwd = ( JPasswordField ) Source();
园林景观设计效果图string = "passwordField: " + new String( Password() );// 取得的是一个字符数组得转,好多同学没仔细看返回值,包括刘杰:)
}

JOptionPane.showMessageDialog( null, string );
}

} // end 内部私有类

} // end 曾海,改编自javaHowToPragram 4th Edtion,仅作教学用途
9.6 JButton的使用

本文发布于:2023-07-18 20:16:04,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1103697.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:事件   部件   方法   文本   使用
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图