91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java Swing組件下拉菜單控件JComboBox用法示例

發布時間:2020-08-21 16:12:04 來源:腳本之家 閱讀:632 作者:pzy4447 欄目:編程語言

本文實例講述了Java Swing組件下拉菜單控件JComboBox用法。分享給大家供大家參考,具體如下:

JComboBox是Swing中的下拉菜單控件。它永遠只能選中一個項目,然而比單選按鈕節省空間。如果使用setEditable設置為true則內部選項的文本可以編輯,因此這種組件被稱為組合框。注意,對選項的編輯只會影響當前項,而不會改變列表內容。可以使用addItem方法來添加選項列表,或者使用insertItemAt在任何位置插入選項;然而如果有大量選項需要添加,這種方法是非常笨重的,可以先構造一個DefaultComboBoxModel,使用addElement加載選項,最后在調用JComboBox的setModel方法。

常用方法如下:

Java Swing組件下拉菜單控件JComboBox用法示例

示例代碼:

JComboBoxBasicUseDemo.java

package awtDemo;
import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.event.PopupMenuEvent;
import javax.swing.event.PopupMenuListener;
/*
 * 演示JComboBox的基本用法,以及事件響應
 */
public class JComboBoxBasicUseDemo extends JFrame{
  private static final long serialVersionUID = -8161981948004677531L;
  int DEFAULT_WIDTH = 600;
  int DEFAULT_HEIGHT = 400;
  private JLabel label;
  private JComboBox<String> faceCombo;
  private static final int FONTSIZE = 12;  
  @SuppressWarnings("unused")
    public JComboBoxBasicUseDemo(){
    setTitle("JComboBoxDemo - www.jb51.net");
    setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
    //添加label
    label = new JLabel("歡迎來到億速云 www.jb51.net");
    label.setFont(new Font("Serif",Font.PLAIN, FONTSIZE));
    add(label, BorderLayout.CENTER);
    //actionListener
    ActionListener actionListener = new ActionListener(){
      public void actionPerformed(ActionEvent e) {
        if(e.getSource() instanceof JComboBox){
          @SuppressWarnings({ "unchecked", "rawtypes" })
          JComboBox<String> comboBox = (JComboBox)e.getSource();
          String fontName = comboBox.getSelectedItem().toString();
          label.setFont(new Font(fontName, Font.PLAIN, FONTSIZE));
          System.out.printf("%s%n", "actionPerformed called");
        }
      }
    };
    //popupMenuListener
    PopupMenuListener popupMenuListener = new PopupMenuListener() {
      @Override
      public void popupMenuCanceled(PopupMenuEvent e) {
        System.out.println("下拉菜單取消");
      }
      @SuppressWarnings("unchecked")
            @Override
      public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {
        System.out.println("下拉菜單合上");
        JComboBox<String> source = (JComboBox<String>)e.getSource();
      }
      @Override
      public void popupMenuWillBecomeVisible(PopupMenuEvent e) {
        System.out.println("下拉菜單彈出");
      }
    };
    //itemListener
    ItemListener itemListener = new ItemListener() {
      @Override
      public void itemStateChanged(ItemEvent arg0) {
        // TODO Auto-generated method stub
        if(ItemEvent.SELECTED == arg0.getStateChange()){
          String selectedItem = arg0.getItem().toString();
          label.setFont(new Font(selectedItem, Font.PLAIN, FONTSIZE));
          System.out.printf("new selected item : %s%n",selectedItem);
        }
        if(ItemEvent.DESELECTED == arg0.getStateChange()){
          String selectedItem = arg0.getItem().toString();
          System.out.printf("deselected item : %s%n",selectedItem);
        }
      }
      };
    //添加一個JComboBox
    faceCombo = new JComboBox<String>();
    faceCombo.setEditable(true);
    //faceCombo.addActionListener(actionListener);
    //faceCombo.addPopupMenuListener(popupMenuListener);
    faceCombo.addItemListener(itemListener);
    faceCombo.setEnabled(true);
    faceCombo.addItem("Serif");
    faceCombo.addItem("SansSerif");
    faceCombo.addItem("Monospaced");
    faceCombo.addItem("Dialog");
    faceCombo.addItem("DialogInput");
    add(faceCombo, BorderLayout.SOUTH);
  }
  public static void main(String[] args) {
    // TODO Auto-generated method stub
    //創建窗體并指定標題
    JComboBoxBasicUseDemo frame = new JComboBoxBasicUseDemo();
    //關閉窗體后退出程序
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    //自動適配所有控件大小
    //frame.pack();
    //設置窗體位置在屏幕中央
    frame.setLocationRelativeTo(null);
    //顯示窗體
    frame.setVisible(true);
  }
}

本程序的基本功能是,通過選擇不同的item而相應地改變界面中的英文字體(如本例中的www.jb51.net)。運行效果如下:

Java Swing組件下拉菜單控件JComboBox用法示例

下面分析JComboBox的事件響應。程序中使用了3個不同的事件響應函數,他們具有不同的特性。

ActionListener:它在eclipse和netBeans兩個不同的IDE中表現出了不同的效果- -。在eclipse中,每當選中新節點時被激活;而在netBeans中,選擇新節點時它總會被激活兩次。

PopupMenuListener:它將選擇節點的過程細分為3種類型:下拉菜單彈出;下拉菜單合上;下拉菜單取消。當點開下拉菜單,然后放棄選擇時,則下拉菜單取消、下拉菜單合上兩個事件先后被激活。

ItemListener:將節點的事件分為2種類型:SELECTED和DESELECTED。對于每種事件,均可以調用getItem()方法來獲取相應節點。

因此,如果業務邏輯只關心最新被選中的節點,那么使用ItemListener是比較合適的。

更多關于java相關內容感興趣的讀者可查看本站專題:《Java數據結構與算法教程》、《Java字符與字符串操作技巧總結》、《Java操作DOM節點技巧總結》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》

希望本文所述對大家java程序設計有所幫助。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

前郭尔| 西华县| 杨浦区| 宁武县| 宜兴市| 潞城市| 乐都县| 宣恩县| 胶州市| 海盐县| 琼结县| 井冈山市| 忻州市| 余庆县| 乐陵市| 陇西县| 三门峡市| 神木县| 昔阳县| 义马市| 青川县| 巴马| 富锦市| 南城县| 罗平县| 正蓝旗| 永城市| 青海省| 吴川市| 长宁县| 宜宾县| 连平县| 全南县| 曲靖市| 韶山市| 隆尧县| 黑龙江省| 浦江县| 读书| 昭平县| 南漳县|