Swing程序设计(6)

2019-06-11 19:50

密码框(JPasswordField)与文本框的定义与用法基本相同,唯一不同的是密码框使用户输入的字符串以某种符号进行加密。密码框对象时通过javax.swing.JPasswordField类来创建的,JPasswordField类的构造方法与JTextField的构造方法非常类似。 例子

import java.awt.*;

import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*;

public class Test extends JFrame { /* 定义组件 */

private JPasswordField jp1; private JButton an1; private JPanel mb1,mb2;

public static void main(String[] args) { Test T = new Test(); // 创建本类对象 T.setVisible(true); // 设置显示窗体 }

public Test() {

Container c = this.getContentPane(); /* 设置窗体布局管理器 */

c.setLayout(new GridLayout(2,1)); /* 创建组件 */

jp1=new JPasswordField(10); an1=new JButton(\确定\);

mb1=new JPanel(); mb2=new JPanel(); /* 设置组件属性 */

jp1.setToolTipText(\请输入6到15位由字母、数据、下划线组成的密码!\); //设置提示文本

jp1.setEchoChar('*'); //设置回显字符为* /* 为组件添加事件 */

jp1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {

an1.requestFocusInWindow(); //按钮请求焦点 } });

an1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.out.println(new

String(jp1.getPassword(),0,jp1.getPassword().length)); } });

/* 添加组件 */ mb1.add(jp1); mb2.add(an1);

c.add(mb1); c.add(mb2);

/* 设置窗体属性 */

this.setTitle(\下拉列表\); this.setSize(250, 130); Dimension screenSize =

Toolkit.getDefaultToolkit().getScreenSize();

this.setLocation((screenSize.width - this.getWidth()) / 2, (screenSize.height - this.getHeight()) / 2); this.setResizable(false);

this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); } }

运行结果如下:

确定后的结果:

注:在JPasswordField类中提供一个setEchoChar()方法,可以改变密码框的回显字符。 ? 文本域组件JTextArea

Swing中任何一个文本域都是JTextArea类型的对象。JTextArea常用的构造方法如下: public JTextArea()。 public JTextArea(String text)。 public JTextArea(int rows,int columns)。 public JTextArea(Document doc)。 public JTextArea(Document doc,String Text,int rows,int columns)。

在JTextArea类中存在一个setLineWrap()方法,该方法用于设置文本域是否可以自动换行,如果将该方法的参数设置为true,文本域将自动换行,相反则不自动换行。 例子

import java.awt.*;

import java.awt.event.*; import java.io.*;

import javax.swing.*;

public class Test extends JFrame { /* 定义组件 */

private JTextArea ta1; private JScrollPane sp1;

public static void main(String[] args) throws Exception { Test T = new Test(); // 创建本类对象 T.setVisible(true); // 设置显示窗体 }

public Test() throws Exception {

Container c = this.getContentPane(); /* 设置窗体布局管理器 */ /* 创建组件 */

ta1=new JTextArea();

sp1=new JScrollPane(ta1); /*设置流*/ File file=new

File(\); FileReader in=new FileReader(file);

BufferedReader buin=new BufferedReader(in); String str=null;

while((str=buin.readLine())!=null){ ta1.append(str); ta1.append(\); }

buin.close(); in.close();

/* 设置组件属性 */

ta1.setLineWrap(true); //设置自动换行 ta1.setEnabled(false); //设置禁用文本

ta1.setDisabledTextColor(Color.red); //设置禁用文本的当前颜色

/* 为组件添加事件 */ /* 添加组件 */ c.add(sp1);

/* 设置窗体属性 */

this.setTitle(\文本域\); this.setSize(250, 130); Dimension screenSize =

Toolkit.getDefaultToolkit().getScreenSize();

this.setLocation((screenSize.width - this.getWidth()) / 2, (screenSize.height - this.getHeight()) / 2); this.setResizable(false);

this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); } }

运行结果如下:

注:如插入this.setUndecorated(true);显示效果如下

十一、常用事件监听器

Swing中常用的两个事件监听器,即动作事件监听器与焦点事件监听器。 ? 监听事件简介

在Swing事件模型中由3个分离的对象完成对事件的处理,分别为事件源、事件以及监听程序。事件源触发一个事件,它被一个或多个“监听器”接收,监听器负责处理事件。

所谓事件监听器,实质上就是一个“实现特定类型监听器接口”的类对象。也许有些读者对此有些迷惑,下面就来解释一下。事件几乎都以对象来表示,它是某种事件类的对象,事件源(如按钮)会在用户作出相应的动作(如按钮被按下)时产生事件对象,如动作事件对应ActionEvent类对象,同时要编写一个监听器的类必须实现相应的接口,如ActionEvent类对应的是ActionListener,需要获取某个事件对象就必须实现相应的接口,同时需要将接口中的方法一一实现。最后事件源(按钮)调用相应的方法加载这个“实现特定类型监听器接口”的类对象,所有的事件源都具有addXXXListener()和removeXXXListener()方法(其中“XXX”方法表示监听事件类型),这样就可以为组件添加或移除相应的事件监听器。

? 动作事件监听器

动作事件(ActionEvent)监听器是Swing中比常用的事件监听器,很多组件的动作都会使用它监听,如按钮被按下。表13.3描述了动作事件监听器的接口与事件源。

表13.3动作事件监听器 事 件 名 称 ActionEvent 例子

事 件 源 JButton、JList、JTextField等 监 听 接 口 ActionListener 添加或删除相应类型监听器的方法 addActionListener()、removeActionListener() import java.awt.*; import javax.swing.*; import java.awt.event.*;

public class Test extends JFrame { /*定义组件 */

private JButton an1;

public static void main(String[] args) throws Exception { Test T = new Test(); // 创建本类对象 T.setVisible(true); // 设置显示窗体 }

public Test() throws Exception {

Container c = this.getContentPane(); /* 设置窗体布局管理器 */ c.setLayout(null); /* 创建组件 */

an1=new JButton(); /*设置流*/

/* 设置组件属性 */

an1.setBounds(10,10,100,40); an1.setText(\按钮\); /* 为组件添加事件 */

an1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { an1.setText(\我被单击了\); }


Swing程序设计(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:PSA 制氮装置操作规程

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: