java swing model实现JComboBox

效果图


源代码:

import java.awt.Container ;
import java.awt.GridLayout ;
import java.awt.Font ;
import java.awt.event.WindowListener ;
import java.awt.event.WindowEvent ;
import java.awt.event.WindowAdapter ;
import javax.swing.JFrame ;
import javax.swing.JLabel ;
import javax.swing.JComboBox ;
import javax.swing.ComboBoxEditor ;
import javax.swing.AbstractListModel ;
import javax.swing.ComboBoxModel ;
import javax.swing.BorderFactory ;
import java.util.Vector ;

class MyComboBoxModel extends AbstractListModel implements ComboBoxModel
{
   String nations[] = {"天朝","苞米","三胖","奥观海","三哥"} ;
   String item = null;
   public Object getSelectedItem()
   {
        return this.item ;
   }
  
   public void setSelectedItem(Object anItem)
   {
       this.item = (String)anItem ;
   }
  
   public Object getElementAt(int in)
  {
     return this.nations[in] ;
  }
  
  public int getSize()
  {
      return this.nations.length ;
  } 
} ;

class MyComboBox
{
    private String defaultMsg = "输入或者选择国籍" ;
    private JFrame frame = new JFrame("投胎系统") ;
    private Container con = frame.getContentPane() ;
    private JComboBox jcb1 = null ;
    Font fnt = new Font("楷体",Font.BOLD,20) ;
    //private JComboBox jcb2 = null ;
   
    public MyComboBox()
    {
       this.frame.setLayout(new GridLayout(2,1)) ;
      
       this.jcb1 = new JComboBox(new MyComboBoxModel()) ;
       this.jcb1.setEditable(true) ;
      
       jcb1.setBorder(BorderFactory.createTitledBorder("请选择投胎国籍")) ;
       ComboBoxEditor editor = null;
       editor = this.jcb1.getEditor() ;
       this.jcb1.configureEditor(editor,defaultMsg) ;
       this.jcb1.setMaximumRowCount(4) ;    //设置最大显示选项
      
       con.add(this.jcb1) ;
       con.add(new JLabel("赢在起跑线!")) ;
      
       this.frame.setSize(180,150) ;
       this.frame.setVisible(true) ;
      
      
    }
}

class Tester
{
   public static void main(String args[])
   {
        new MyComboBox() ;
   }
}



转载于:https://www.cnblogs.com/emoji/p/4436813.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值