Java——下拉列表框:JComboBox

import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Vector; import javax.swing.BorderFactory;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList; //=================================================
// File Name : MyComboBox_demo
//------------------------------------------------------------------------------
// Author : Common //类名:MyList
//属性:
//方法:
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,2));
String nations[] = {"中国","美国","韩国","法国","英国"};
Vector<String> v = new Vector<String>(); //定义一个Vector集合
v.add("元素1");
v.add("元素2");
v.add("元素3");
this.jcb1 = new JComboBox(nations);
this.jcb2 = new JComboBox(v);
//定义一个列表框的边框显示条
jcb1.setBorder(BorderFactory.createTitledBorder("哪个国家?"));
jcb2.setBorder(BorderFactory.createTitledBorder("Vector?"));
jcb1.setMaximumRowCount(3); //最多显示3个选项
jcb2.setMaximumRowCount(3);
cont.add(this.jcb1);
cont.add(this.jcb2);
cont.add(new JLabel("下拉列表框"));
this.frame.setSize(330,200);
this.frame.setVisible(true);
this.frame.addWindowListener(new WindowAdapter(){ //加入事件监听
public void windowClosing(WindowEvent arg0) { //窗口关闭时触发,按下关闭按钮
// TODO 自动生成的方法存根
System.out.println("windowClosing-->窗口关闭");
System.exit(1);
}
});
}
} //主类
//Function : MyComboBox_demo
public class MyComboBox_demo { public static void main(String[] args) {
// TODO 自动生成的方法存根
new MyComboBox();
} }

import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Vector; import javax.swing.AbstractListModel;
import javax.swing.BorderFactory;
import javax.swing.ComboBoxModel;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList; //=================================================
// File Name : MyComboBox_demo
//------------------------------------------------------------------------------
// Author : Common //类名:MyComboBox
//属性:
//方法:
class MyComboBoxModel extends AbstractListModel implements ComboBoxModel{ String nations[] = {"中国","美国","韩国","法国","英国"};
String item = null; @Override
public int getSize() {
// TODO 自动生成的方法存根
return this.nations.length;
} @Override
public Object getElementAt(int index) {
// TODO 自动生成的方法存根
return this.nations[index];
} @Override
public void setSelectedItem(Object anItem) {
// TODO 自动生成的方法存根
this.item = (String) anItem;
} @Override
public Object getSelectedItem() {
// TODO 自动生成的方法存根
return this.item;
} } //类名:MyComboBox
//属性:
//方法:
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,2));
// String nations[] = {"中国","美国","韩国","法国","英国"};
// Vector<String> v = new Vector<String>(); //定义一个Vector集合
// v.add("元素1");
// v.add("元素2");
// v.add("元素3");
// this.jcb1 = new JComboBox(nations);
// this.jcb2 = new JComboBox(v);
this.jcb1 = new JComboBox(new MyComboBoxModel()); //实例化JComboBox
//定义一个列表框的边框显示条
jcb1.setBorder(BorderFactory.createTitledBorder("哪个国家?"));
// jcb2.setBorder(BorderFactory.createTitledBorder("Vector?"));
jcb1.setMaximumRowCount(3); //最多显示3个选项
// jcb2.setMaximumRowCount(3);
cont.add(this.jcb1);
// cont.add(this.jcb2);
cont.add(new JLabel("下拉列表框"));
this.frame.setSize(330,200);
this.frame.setVisible(true);
this.frame.addWindowListener(new WindowAdapter(){ //加入事件监听
public void windowClosing(WindowEvent arg0) { //窗口关闭时触发,按下关闭按钮
// TODO 自动生成的方法存根
System.out.println("windowClosing-->窗口关闭");
System.exit(1);
}
});
}
} //主类
//Function : MyComboBox_demo
public class MyComboBox_demo { public static void main(String[] args) {
// TODO 自动生成的方法存根
new MyComboBox();
} }

import java.awt.Container;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Vector; import javax.swing.AbstractListModel;
import javax.swing.Action;
import javax.swing.BorderFactory;
import javax.swing.ComboBoxModel;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList; //=================================================
// File Name : MyComboBox_demo
//------------------------------------------------------------------------------
// Author : Common //类名:MyComboBox
//属性:
//方法: class MyComboBox implements ItemListener,ActionListener{
private JFrame frame = new JFrame("窗体"); //定义窗体
private Container cont = frame.getContentPane(); //得到窗体容器
private JComboBox jcb1 = null; //定义下拉列表框
private JLabel label = new JLabel("标签"); //定义标签
private String fontSize[] = {"10","11","12"}; public MyComboBox(){
this.frame.setLayout(new GridLayout(2,2)); this.jcb1 = new JComboBox(this.fontSize); //实例化JComboBox
//定义一个列表框的边框显示条
jcb1.setBorder(BorderFactory.createTitledBorder("请选择显示文字大小")); jcb1.addItemListener(this); //加入选项监听
jcb1.addActionListener(this); //加入动作监听 jcb1.setMaximumRowCount(3); //最多显示3个选项
jcb1.setEditable(true); //设置可编辑文本
jcb1.configureEditor(jcb1.getEditor(), "12"); //定义默认值
this.changeFontSize(12); //设置默认字体 cont.add(this.jcb1);
cont.add(label); cont.add(new JLabel("下拉列表框"));
this.frame.setSize(330,200);
this.frame.setVisible(true);
this.frame.addWindowListener(new WindowAdapter(){ //加入事件监听
public void windowClosing(WindowEvent arg0) { //窗口关闭时触发,按下关闭按钮
// TODO 自动生成的方法存根
System.out.println("windowClosing-->窗口关闭");
System.exit(1);
}
});
}
@Override
public void actionPerformed(ActionEvent e) { //输入信息时触发
// TODO 自动生成的方法存根
String itemSize = (String) this.jcb1.getSelectedItem(); //得到选项
int Size = 12;
try{
Size = Integer.parseInt(itemSize); //字符串转整数
}catch(Exception ex){
this.jcb1.getEditor().setItem("输入的不是数字");
}
this.changeFontSize(Size);
if(!this.isExists(itemSize)){
this.jcb1.addItem(jcb1.getSelectedItem()); //不存在,加入下拉选项
}
}
@Override
public void itemStateChanged(ItemEvent e) {
// TODO 自动生成的方法存根 } public void changeFontSize(int size){ //改变文字大小
Font font = new Font("Serief",Font.BOLD,size); //定义Font对象
this.label.setFont(font); //设置文字大小
} public boolean isExists(String item){
boolean flag = false;
for(int i =0;i<this.jcb1.getItemCount();i++){
if(item.equals(this.jcb1.getItemAt(i))){
flag = true;
}
}
return flag;
} } //主类
//Function : MyComboBox_demo
public class MyComboBox_demo { public static void main(String[] args) {
// TODO 自动生成的方法存根
new MyComboBox();
} }
Java——下拉列表框:JComboBox的更多相关文章
- java的JCombobox实现中国省市区三级联动
源代码下载:点击下载源代码 用xml存储中国各大城市的数据. xml数据太多了就不贴上了,贴个图片: 要解释xml,添加了一个jdom.jar,上面的源代码下载里面有. 解释xml的类: packag ...
- Swing JComboBox的使用
1:JComboBox的使用:类层次结构图: java.lang.Object --java.awt.Component --java.awt.Container --javax.swing.JCom ...
- java窗口程序初学组件小总结
容器(可以放组件)JPanel默认的布局管理器是FlowLayout:JPanel panel=new JPanel(); 按钮JButton(可以为汉字 也可以是图片):JButton button ...
- JComBox的用法
JComboBox的使用: 类层次结构图: java.lang.Object --java.awt.Component --java.awt.Container - ...
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
- Java Swing 编程 JComboBox 实现模糊查找功能。
废话不多说,直接上代码.代码如下: import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util ...
- Java Swing 编程 JComboBox 显示不全问题。
最近在做Java Swing编程一个小例子.然后遇到JComboBox 宽度固定,而下拉列表比较长,导致显示不全的问题. 解决的思路想到两种,1:下拉列表当显示不全的时候,换行显示.2:在下拉列表停几 ...
- JAVA JComboBox的监听事件(ActionListener、ItemListener)
版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 参考资料: http://263229365.iteye.com/blog/1040329 https://www.ja ...
- Java 原始类型JComboBox的成员JComboBox(E())的调用 未经过检查
问题描述: 根据书上的代码 ,编译时候出现以下问题 自定义了一个字符数组: private String[] grades = {"1","2","3 ...
随机推荐
- html页面中meta的作用
meta是用来在HTML文档中模拟HTTP协议的响应头报文.meta 标签用于网页的<head>与</head>中,meta 标签的用处很多.meta 的属性有两种:name和 ...
- mysql-函数CASE WHEN 语句使用说明
mysql数据库中CASE WHEN语句. case when语句,用于计算条件列表并返回多个可能结果表达式之一. CASE 具有两种格式: 简单 CASE 函数将某个表达式与一组简单表达式进行比较以 ...
- oninput等表单事件
oninput等表单事件 过去我们常使用keydown和keyup辅助表单元素的处理,这要求处理时,表单元素必须处于激活(聚焦)状态.oninput事件可以实时监听文本框的输入变化. 现代浏览器支 ...
- [bzoj1854][SCOI2010]游戏
Description 一个装备有两个属性,一个装备只能被使用一次,一次使用一种属性.攻击boss时需按属性1.属性2.属性3...属性k的顺序使用,问k最大为多少. Input 输入的第一行是一个整 ...
- IE中使用jquery的fadeIn()失效的问题
在自己写的一个轮播组件中遇到一个问题,使用jquery的fadeIn动画时,在IE11中表现不正常,没有渐入的效果. 1.HTML结构 <div class="mainpage-sli ...
- 【BZOJ-4514】数字配对 最大费用最大流 + 质因数分解 + 二分图 + 贪心 + 线性筛
4514: [Sdoi2016]数字配对 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 726 Solved: 309[Submit][Status ...
- Python:Sqlmap源码精读之解析xml
XML <?xml version="1.0" encoding="UTF-8"?> <root> <!-- MySQL --&g ...
- ListView优化-通用ViewHolder编写备份
ViewHolder.java package cn.edu.bzu.util; import android.content.Context; import android.util.SparseA ...
- poj3696 快速幂的优化+欧拉函数+gcd的优化+互质
这题满满的黑科技orz 题意:给出L,要求求出最小的全部由8组成的数(eg: 8,88,888,8888,88888,.......),且这个数是L的倍数 sol:全部由8组成的数可以这样表示:((1 ...
- UDP打洞、P2P组网方式研究
catalogue . NAT概念 . P2P概念 . UDP打洞 . P2P DEMO . ZeroNet P2P 1. NAT概念 在STUN协议中,根据内部终端的地址(LocalIP:Local ...