Swing程序设计(5)

2019-06-11 19:50

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

/* 设置窗体属性 */

this.setTitle(\下拉列表\); this.setSize(260, 150); 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); } }

class MyComboBoxModel extends AbstractListModel implements ComboBoxModel {

String selecteditem = null;

String[] test = { \身份证\, \军人证\, \学生证\, \工作证\ };

public int getSize() { return test.length; }

public Object getElementAt(int index) { return test[index]; }

public void setSelectedItem(Object anItem) { selecteditem = (String) anItem; }

public Object getSelectedItem() { return selecteditem; } }

运行结果如下:

? 列表框组件Jlist

列表框(JList)与下拉列表框的区别不仅表现在外观上,当激活下拉列表框时,会出现下拉列表框中的内容,但列表框只是在窗体上占据固定的大小,如果需要列表框具有滚动效果,可以将列表框放入滚动面板。用户在选择列表框中的某一项时,按住Shift键并选择列表框中的其他项目,则当前选项和其他项目之间的选项也将全部被选中;也可以按住Ctrl键并单击列表框中的单个项目,这样可以使列表框中被单击的项目反复切换非选中状态或选中状态。

Swing中使用JList类对象来表示列表框,常用的构造方法如下: public JList();

public JList(Object[] listData); public JList(Vector listData);

public JList(ListModel dataModel);

在上述构造方法中,存在一个没有参数的构造方法,可以在初始化列表框后使用setListData()方法对列表框进行设置,同时也可以在初始化的过程中对列表框中的项目进行设置。设置的方式有3种类型,包括数组、Vector类型和ListModel模型。

当使用数组作为构造方法的参数时,首先需要创建列表项目的数组,然后再利用构造方法来初始化列表框。

String[] str={\列表1\,\列表2\,\列表3\,\列表4\,\列表5\,\列表6\}; JList jl1=new JList(str);

使用Vector类型的数据作为初始化JList组件的参数。 Vector V=new Vector(); JList jl=new JList(V); V.add(“列表1”); V.add(“列表2”); V.add(“列表3”); V.add(“列表4”);

如果使用ListModel模型作为参数,需要创建ListModel对象。ListModel是Swing包中的一个接口,它提供了获取列表框属性的方法。但是在通常情况下,为了使用户不完全实现ListModel接口中的方法,通常自定义一个类继承实现该接口的抽象类AbstractListModel。在这个类中提供了getElementAt()方法与getSize()方法,其中getElementAt()方法代表根据项目的索引获取列表框中的值,而getSize()方法用于获取列表框中的项目个数。 例子

import java.awt.*; import javax.swing.*;

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

private JList jl1;

private JScrollPane mb1;

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

public Test() {

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

String[] str={\列表1\,\列表2\,\列表3\,\列表4\,\列表5\,\列表6\};

jl1=new JList(str);

mb1=new JScrollPane(jl1); /* 设置组件属性 */

mb1.setBounds(10, 10, 60, 100); /* 为组件添加事件 */ /* 添加组件 */ c.add(mb1);

/* 设置窗体属性 */

this.setTitle(\下拉列表\); this.setSize(150, 150); 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); } }

运行结果如下:

十、文本组件

文本组件在实现项目开发使用最为广泛,尤其是文本框与密码框组件,通过文本组件可以很轻松地处理单行文字、多行文字、口令字段。在本节中将探讨文本组件的定义以及使用。 ? 文本框组件JTextField

文本框(JTextField)用来显示或编辑一个单行文本,在Swing中通过javax.swing.JTextField类对象创建,该类继承了javax.swing.text.JTextComponent类。文本框常用的构造方法如下: public JTextField()。 public JTextField(String text)。 public JTextField(int fieldwidth)。 public JTextField(String text,int fieldwidth)。 public JTextField(Document docModel,String text,int fieldwidth)。 例子

import java.awt.*;

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

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

private JTextField jt1; 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)); /* 创建组件 */

jt1=new JTextField(\请输入\,20); an1=new JButton(\清除\);

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

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

jt1.setText(\触发事件\); //将文本设置为:触发事件 an1.requestFocusInWindow(); //按钮请求焦点 } });

an1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { jt1.setText(null); //将文本框的内容清除

jt1.requestFocusInWindow(); //文本框请求焦点

} });

/* 添加组件 */ mb1.add(jt1); 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); } }

运行结果如下:

注:jt1.setEnabled(false)语句可以将文本框设置成不可用状态,如下图:

? 密码框组件JPasswordField


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

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

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

马上注册会员

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