Java程序设计 图形用户界面 【十二】下拉列表JComboBox
Java程序设计 图形用户界面 【十二】下拉列表JComboBox
下拉列表JComboBox
JList是以列表框的形式进行显示的
有列表又可以自己输入数据这种组件就称为下拉列表框
JComboBox类可以完成这样的功能
JComboBox类的常用方法
方法 | 作用 |
---|---|
public JComboBox(ComboBoxModel aModel) | 利用ComboBox 构造一个JComboBox对象 |
public JComboBox(Object[] items) | 利用对象数组构造一个JComboBox对象 |
public JComboBox(Vector<?> items) | 利用Vector构成一个JComboBox对象 |
public Object getItemAt(int index) | 返回指定索引处的列表项 |
public int getItemCount() | 返回列表中的项数 |
public void addItem(Object anObject) | 为列表增加内容 |
public void setEditable(boolean aFlag) | 设置此下拉列表是否可编辑 |
public void setMaximumRowCount(int count) | 设置下拉列表显示的最大行数 |
public void setSelectedIndex(int anIndex) | 设置默认选项的索引号 |
public ComboBoxEditor getEditor() | 返回JComboBox的内容编辑器 |
public void configureEditor(ComboBoxEditor anEditor,Object anItem) | 初始化编辑器 |
import javax.swing.*;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Vector;class MyComboBox{private JFrame frame = new JFrame("一");private Container cont = frame.getContentPane();private JComboBox jcb1 = null;private JComboBox jcb2 = null;public MyComboBox(){this.frame.setLayout(new GridLayout(2,1));String n[] = {"A","B","C","D"};Vector<String> v = new Vector<String>();v.add("a");v.add("b");v.add("c");v.add("d");this.jcb1 = new JComboBox(n);this.jcb2 = new JComboBox(v);cont.add(this.jcb1);cont.add(this.jcb2);this.frame.setSize(300,150);this.frame.setVisible(true);this.frame.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {super.windowClosing(e);System.exit(1);}});}
}
public class Hello {public static void main(String[] args) {new MyComboBox();}
}
使用JComboBox建立了两个下拉列表框
在JComboBox中也可以使用ComboBoxModel接口来构造JComboBox中的列表内容,ComboBoxModel接口是ListModel接口的子类,继承ListModel中的所有操作方法
ComboBox接口增加的方法
方法 | 作用 |
---|---|
void setSelectedItem(Object anItem ) | 设置选项内容 |
Object getSelectedItem() | 返回选择项 |
使用ComboBox和AbstractListModel构造可编辑的JComboBox
import javax.swing.*;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;class MyComboBoxModel extends AbstractListModel implements ComboBoxModel{String n[] = {"A","B","C","D"};String item = null;public Object getSelectedItem(){return this.item;}public void setSelectedItem(Object arg){this.item=(String) arg;}@Overridepublic int getSize() {return this.n.length;}@Overridepublic Object getElementAt(int index) {return this.n[index];}
}
class MyComboBox{private JFrame frame = new JFrame("一");private Container cont = frame.getContentPane();private JComboBox jcb1 = null;public MyComboBox(){this.frame.setLayout(new GridLayout(2,1));this.jcb1 = new JComboBox(new MyComboBoxModel());jcb1.setBorder(BorderFactory.createTitledBorder("请选择"));
// 设置最多显示3个jcb1.setMaximumRowCount(3);jcb1.setEditable(true);ComboBoxEditor editor = null;editor = jcb1.getEditor();jcb1.configureEditor(editor,"请选择");cont.add(this.jcb1);this.frame.setSize(180,150);this.frame.setVisible(true);this.frame.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {super.windowClosing(e);System.exit(1);}});}
}
public class Hello {public static void main(String[] args) {new MyComboBox();}
}
使用ComboBoxModel构造了JComBox对象,在程序中将JComboBox设置为可以编辑,即用户可以直接通过文本选择选项的内容
JComboBox事件处理
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;class MyComboBox implements ItemListener, ActionListener{private JFrame frame = new JFrame("一");private Container cont = frame.getContentPane();private JComboBox jcb1 = null;private JLabel label = new JLabel("A");private String n[] ={"A","B","C","D"};public MyComboBox(){this.frame.setLayout(new GridLayout(2,1));this.jcb1 = new JComboBox(this.n);jcb1.addItemListener(this);jcb1.addActionListener(this);jcb1.setEditable(true);cont.add(this.jcb1);cont.add(label);this.frame.setSize(300,200);this.frame.setVisible(true);this.frame.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {super.windowClosing(e);System.exit(1);}});}
// 输入信息时触发@Overridepublic void actionPerformed(ActionEvent e) {String s = (String)this.jcb1.getSelectedItem();this.label.setText(s);}
// 选项改变时触发@Overridepublic void itemStateChanged(ItemEvent e) {if(e.getStateChange()==ItemEvent.SELECTED){String s = (String) e.getItem();this.label.setText(s);}}
}
public class Hello {public static void main(String[] args) {new MyComboBox();}
}
[外链图片转存中…(img-powhw15y-1645016303781)]
Java程序设计 图形用户界面 【十二】下拉列表JComboBox相关推荐
- Java程序设计 图形用户界面 【十三】菜单
Java程序设计 图形用户界面 [十三]菜单 菜单组件 JMenu与JMenuBar 菜单 JMenuBar组件的功能是用来摆放JMenu组件,当建立完多个JMenu组件之后,需要通过JMenuBar ...
- 201671010103 2016-2017-2 《Java程序设计》第十二周学习心得
Java的抽象窗口工具箱(Abtract Window Toolkit,AWT )包含在java.awt中它提供了许多用来设计GUI的组件类和容器类:而Swing类库被包含在javax.swing包里 ...
- Java程序设计 图形用户界面 小巫版简易计算器
/** 作者:wwj 时间:2012/4/13 功能:实现一个计算器应用程序实验要求:编写一个模拟计算器的应用程序,使用面板和网格布局, 添加一个文本框,10个数字按钮(0~9),4个加减乘除按钮, ...
- Java语言程序设计----- 图形用户界面设计
Java语言程序设计----- 图形用户界面设计 1.实验目的 (1)掌握Java Swing组件的使用方法. (2)理解委托事件处理模型. (3)设计具有图形用户界面的.能够响应事件的Java应用程 ...
- 20175227张雪莹 2018-2019-2 《Java程序设计》第十周学习总结
20175227张雪莹 2018-2019-2 <Java程序设计>第十周学习总结 教材学习内容总结 第十二章 Java多线程机制 进程与线程 线程是比进程更小的执行单位,一个进程在其执行 ...
- Java Swing 图形用户界面——常见组件
一直在用C\C++,还没开始认真学Java,但这几天课堂上的Java Swing 图形用户界面引起了我的兴趣.正好前段时间在玩Qt的图形化界面,发现两者有很多相似之处,学起来也容易很多.(但实际上Ja ...
- 201521123038 《Java程序设计》 第十周学习总结
201521123038 <Java程序设计> 第十周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 2. 书面作业 本次PTA作业题 ...
- 20155335俞昆《java程序设计》第十周总结
学号 2016-2017-2 <Java程序设计>第十周学习总结 ## 事实上网络编程,我们可以简单的理解为两台计算机相互通讯数据而已,对于程序员而言,掌握一种编程接口并使用一种编程模型相 ...
- java程序设计编程题_20165237 2017-2018-2 《Java程序设计》第十周考试补做及编程题...
20165237 2017-2018-2 <Java程序设计>第十周考试补做及编程题 知识点 1.链表是由若干个称作节点的对象组成的一种数据结构,每个节点含有一个数据和下一个节点的引用 . ...
最新文章
- linux的android工作室,Android工作室在启动时抛出错误,linux机器
- sklearn使用投票器VotingClassifier算法构建多模型融合的软投票器分类器(soft voting)并自定义子分类器的权重(weights)、计算融合模型的混淆矩阵、可视化混淆矩阵
- html中div裹div,html – 围绕div包裹textarea输入
- Android四大组件之BroadCastReceiver
- day3 程序流程控制
- Dart 10-Day
- Windows 下安装 tensorflow keras opencv 的避坑指南!
- 分析频域滤波和空域滤波的各自特点_同态滤波原理及其matlab实现
- director 3d tank
- 天涯怎么引流到qq?天涯社区如何靠发帖子引流?
- dcdc模块降额设计_人工智能产品设计—LDO使用的技术总结篇
- itext生成pdf加页码和总页码
- Unity和Easy AR制作一个AR的APP
- 98大水灾,各国各地区对我国的捐助一览表
- 打印时中间空白,两边清楚
- 手写springIOC、AOP
- clion三角形运行键是灰的_能打游戏能编程,如何用吃灰机器,安装完整ChromeOS(支持安卓)...
- Keras loss函数
- 电影院和计算机和字典的英语怎么拼,电影院用英语怎么读
- mysql geo_地理位置geo处理之mysql函数