標籤:jcombobox swing
原始碼:
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() ; }}
java swing model實現JComboBox