import javax.swing.JFrame ; import java.awt.Container ; import java.awt.event.WindowEvent ; import java.awt.event.WindowAdapter ; import java.awt.GridLayout ; import javax.swing.JComboBox ; import javax.swing.JLabel ; import javax.swing.BorderFactory ; import java.util.Vector ; class MyComboBox{ private JFrame frame = new JFrame("Welcome TO MLDN") ; 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>() ; v.add("MLDN") ; // 增加内容 v.add("MLDNJAVA") ; // 增加内容 v.add("智囊团") ; // 增加内容 this.jcb1 = new JComboBox(nations) ; // 实例化下拉列表框 this.jcb2 = new JComboBox(v) ; // 实例化下拉列表框 // 为每一个下拉框增加一个边框 this.jcb1.setBorder(BorderFactory.createTitledBorder("你喜欢去那个国家旅游?")) ; this.jcb2.setBorder(BorderFactory.createTitledBorder("你喜欢的网站?")) ; cont.add(this.jcb1) ; cont.add(this.jcb2) ; cont.add(new JLabel("下拉列表框")) ; this.frame.setSize(300,150) ; this.frame.setVisible(true) ; this.frame.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(1) ; } }) ; } } public class JComboBoxDemo01{ public static void main(String args[]){ new MyComboBox() ; } }
import javax.swing.JFrame ; import java.awt.Container ; import java.awt.event.WindowEvent ; import java.awt.event.WindowAdapter ; import java.awt.GridLayout ; import javax.swing.JComboBox ; import javax.swing.JLabel ; import javax.swing.JLabel ; import javax.swing.AbstractListModel ; import javax.swing.BorderFactory ; import javax.swing.ComboBoxEditor ; import javax.swing.ComboBoxModel ; import java.util.Vector ; class MyComboBoxModel extends AbstractListModel implements ComboBoxModel{ private String nations[] = {"中国","巴西","美国","韩国","意大利","法国"} ; private String item = null ; public Object getSelectedItem(){ // 得到选择的选项 return this.item ; } public void setSelectedItem(Object anItem){ // 设置选项 this.item = (String)anItem ; } public int getSize(){ return this.nations.length ; } public Object getElementAt(int ind){ return this.nations[ind] ; } } class MyComboBox{ private String defaultMsg = "请选择或输入国家的名称。" ; private JFrame frame = new JFrame("Welcome TO MLDN") ; private Container cont = frame.getContentPane() ; // 得到容器 private JComboBox jcb1 = null ; private JComboBox jcb2 = null ; public MyComboBox(){ this.frame.setLayout(new GridLayout(2,1)) ; // 定义排版 this.jcb1 = new JComboBox(new MyComboBoxModel()) ; // 实例化下拉列表框 this.jcb1.setEditable(true) ; // 表示可以编辑 // 为每一个下拉框增加一个边框 this.jcb1.setBorder(BorderFactory.createTitledBorder("你喜欢去那个国家旅游?")) ; ComboBoxEditor editor = null ; editor = this.jcb1.getEditor() ; /// 得到编辑对象 this.jcb1.configureEditor(editor,defaultMsg) ;// 指定默认值 this.jcb1.setMaximumRowCount(3) ; cont.add(this.jcb1) ; cont.add(new JLabel("下拉列表框")) ; this.frame.setSize(180,150) ; this.frame.setVisible(true) ; this.frame.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(1) ; } }) ; } } public class JComboBoxDemo02{ public static void main(String args[]){ new MyComboBox() ; } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | import javax.swing.JFrame ; import java.awt.Container ; import java.awt.Font ; import java.awt.event.WindowEvent ; import java.awt.event.ActionListener ; import java.awt.event.ItemListener ; import java.awt.event.ItemEvent ; import java.awt.event.ActionEvent ; import java.awt.event.WindowAdapter ; import java.awt.GridLayout ; import javax.swing.JComboBox ; import javax.swing.JLabel ; import javax.swing.ComboBoxEditor ; import javax.swing.BorderFactory ; import java.util.Vector ; class MyComboBox implements ItemListener,ActionListener{ private JFrame frame = new JFrame( "Welcome TO MLDN" ) ; private Container cont = frame.getContentPane() ; // 得到容器 private JComboBox jcb1 = null ; private JLabel label = new JLabel( "www.MLDNJAVA.cn" ) ; // 定义标签 private String fontSize[] = { "10" , "12" , "14" , "16" , "18" , "20" , "22" , "24" , "26" , "48" , "72" } ; public MyComboBox(){ this .frame.setLayout( new GridLayout( 2 , 2 )) ; // 定义排版 this .jcb1 = new JComboBox(fontSize) ; // 实例化下拉列表框 this .jcb1.addItemListener( this ) ; this .jcb1.addActionListener( this ) ; this .jcb1.setEditable( true ) ; // 表示可以编辑 // 为每一个下拉框增加一个边框 this .jcb1.setBorder(BorderFactory.createTitledBorder( "你喜欢去那个国家旅游?" )) ; ComboBoxEditor editor = null ; editor = this .jcb1.getEditor() ; /// 得到编辑对象 this .jcb1.configureEditor(editor, "12" ) ; // 指定默认值 this .jcb1.setMaximumRowCount( 3 ) ; this .changeFontSize( 12 ) ; // 默认值 cont.add( this .jcb1) ; cont.add(label) ; this .frame.setSize( 300 , 150 ) ; this .frame.setVisible( true ) ; this .frame.addWindowListener( new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit( 1 ) ; } }) ; } public void itemStateChanged(ItemEvent e){ if (e.getStateChange()==ItemEvent.SELECTED){ // 判断是否是选中 String itemSize = (String)e.getItem() ; try { this .changeFontSize(Integer.parseInt(itemSize)) ; } catch (Exception e1){ } } } public void actionPerformed(ActionEvent e){ String item = (String) this .jcb1.getSelectedItem() ; int size = 12 ; // 设置一个默认大小 try { size = Integer.parseInt(item) ; } catch (Exception e1){} this .changeFontSize(size) ; // 判断给定的size是否存在,如果不存在则需要将新的内容设置上去 if (! this .isExists(item)) { this .jcb1.addItem(jcb1.getSelectedItem()) ; } } 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 ; } public void changeFontSize( int size){ System.out.println( "*************" + size) ; Font fnt = new Font( "Serief" ,Font.BOLD,size) ; this .label.setFont(fnt) ; } } public class JComboBoxDemo03{ public static void main(String args[]){ new MyComboBox() ; } } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通