最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2017年11月15日 09:57:27   作者:pzy4447  
這篇文章主要介紹了Java Swing組件下拉菜單控件JComboBox用法,結(jié)合具體實(shí)例形式分析了Swing組件下拉菜單控件JComboBox的具體定義、使用方法及相關(guān)使用注意事項(xiàng),需要的朋友可以參考下

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

JComboBox是Swing中的下拉菜單控件。它永遠(yuǎn)只能選中一個(gè)項(xiàng)目,然而比單選按鈕節(jié)省空間。如果使用setEditable設(shè)置為true則內(nèi)部選項(xiàng)的文本可以編輯,因此這種組件被稱(chēng)為組合框。注意,對(duì)選項(xiàng)的編輯只會(huì)影響當(dāng)前項(xiàng),而不會(huì)改變列表內(nèi)容??梢允褂胊ddItem方法來(lái)添加選項(xiàng)列表,或者使用insertItemAt在任何位置插入選項(xiàng);然而如果有大量選項(xiàng)需要添加,這種方法是非常笨重的,可以先構(gòu)造一個(gè)DefaultComboBoxModel,使用addElement加載選項(xiàng),最后在調(diào)用JComboBox的setModel方法。

常用方法如下:

示例代碼:

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的基本用法,以及事件響應(yīng)
 */
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 - m.fzitv.net");
    setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
    //添加label
    label = new JLabel("歡迎來(lái)到腳本之家 m.fzitv.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);
        }
      }
      };
    //添加一個(gè)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
    //創(chuàng)建窗體并指定標(biāo)題
    JComboBoxBasicUseDemo frame = new JComboBoxBasicUseDemo();
    //關(guān)閉窗體后退出程序
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    //自動(dòng)適配所有控件大小
    //frame.pack();
    //設(shè)置窗體位置在屏幕中央
    frame.setLocationRelativeTo(null);
    //顯示窗體
    frame.setVisible(true);
  }
}

本程序的基本功能是,通過(guò)選擇不同的item而相應(yīng)地改變界面中的英文字體(如本例中的m.fzitv.net)。運(yùn)行效果如下:

下面分析JComboBox的事件響應(yīng)。程序中使用了3個(gè)不同的事件響應(yīng)函數(shù),他們具有不同的特性。

ActionListener:它在eclipse和netBeans兩個(gè)不同的IDE中表現(xiàn)出了不同的效果- -。在eclipse中,每當(dāng)選中新節(jié)點(diǎn)時(shí)被激活;而在netBeans中,選擇新節(jié)點(diǎn)時(shí)它總會(huì)被激活兩次。

PopupMenuListener:它將選擇節(jié)點(diǎn)的過(guò)程細(xì)分為3種類(lèi)型:下拉菜單彈出;下拉菜單合上;下拉菜單取消。當(dāng)點(diǎn)開(kāi)下拉菜單,然后放棄選擇時(shí),則下拉菜單取消、下拉菜單合上兩個(gè)事件先后被激活。

ItemListener:將節(jié)點(diǎn)的事件分為2種類(lèi)型:SELECTED和DESELECTED。對(duì)于每種事件,均可以調(diào)用getItem()方法來(lái)獲取相應(yīng)節(jié)點(diǎn)。

因此,如果業(yè)務(wù)邏輯只關(guān)心最新被選中的節(jié)點(diǎn),那么使用ItemListener是比較合適的。

更多關(guān)于java相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java字符與字符串操作技巧總結(jié)》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Spring Cache的使用示例詳解

    Spring Cache的使用示例詳解

    SpringCache是構(gòu)建在SpringContext基礎(chǔ)上的緩存實(shí)現(xiàn),提供了多種緩存注解,如@Cachable、@CacheEvict、@CachePut等,本文通過(guò)實(shí)例代碼介紹了Spring Cache的使用,感興趣的朋友一起看看吧
    2025-01-01
  • Java深度優(yōu)先遍歷解決排列組合問(wèn)題詳解

    Java深度優(yōu)先遍歷解決排列組合問(wèn)題詳解

    這篇文章主要介紹了Java深度優(yōu)先遍歷解決排列組合問(wèn)題詳解,深度優(yōu)先搜索是遞歸過(guò)程,帶有回退操作,因此需要使用棧存儲(chǔ)訪問(wèn)的路徑信息,當(dāng)訪問(wèn)到的當(dāng)前頂點(diǎn)沒(méi)有可以前進(jìn)的鄰接頂點(diǎn)時(shí),需要進(jìn)行出棧操作,將當(dāng)前位置回退至出棧元素位置,需要的朋友可以參考下
    2024-01-01
  • Java如何使用Query動(dòng)態(tài)拼接SQL詳解

    Java如何使用Query動(dòng)態(tài)拼接SQL詳解

    這篇文章主要給大家介紹了關(guān)于Java如何使用Query動(dòng)態(tài)拼接SQL的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • windows下zookeeper配置java環(huán)境變量的方法

    windows下zookeeper配置java環(huán)境變量的方法

    今天小編就為大家分享一篇關(guān)于windows下zookeeper配置java環(huán)境變量的方法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-03-03
  • uploadify java實(shí)現(xiàn)多文件上傳和預(yù)覽

    uploadify java實(shí)現(xiàn)多文件上傳和預(yù)覽

    這篇文章主要為大家詳細(xì)介紹了java結(jié)合uploadify實(shí)現(xiàn)多文件上傳和預(yù)覽的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • 實(shí)現(xiàn)Java刪除一個(gè)集合的多個(gè)元素

    實(shí)現(xiàn)Java刪除一個(gè)集合的多個(gè)元素

    Java中的For each實(shí)際上使用的是iterator進(jìn)行處理的。而iterator是不允許集合在iterator使用期間刪除的。而我在for each時(shí),從集合中刪除了一個(gè)元素,這導(dǎo)致了iterator拋出了ConcurrentModificationException,下面來(lái)看看到底怎么回事。
    2016-08-08
  • JAVA | Guava EventBus 使用 發(fā)布/訂閱模式的步驟

    JAVA | Guava EventBus 使用 發(fā)布/訂閱模式的步驟

    這篇文章主要介紹了JAVA | Guava EventBus 使用 發(fā)布/訂閱模式的步驟,幫助大家更好的理解和學(xué)習(xí)使用Guava EventBus,感興趣的朋友可以了解下
    2021-03-03
  • 詳解SpringBoot中如何使用Reactor模型

    詳解SpringBoot中如何使用Reactor模型

    Reactor模型主要提供了一種在Java虛擬機(jī)上構(gòu)建非阻塞應(yīng)用的方式,這種方式使用了響應(yīng)式編程原理,通過(guò)響應(yīng)式流標(biāo)準(zhǔn)來(lái)實(shí)現(xiàn),下面我們就來(lái)看看它在SpringBoot中是如何使用的吧
    2024-04-04
  • 淺談Java 繼承接口同名函數(shù)問(wèn)題

    淺談Java 繼承接口同名函數(shù)問(wèn)題

    這篇文章主要介紹了淺談Java 繼承接口同名函數(shù)問(wèn)題。具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-09-09
  • springboot整合jsp,實(shí)現(xiàn)公交車(chē)站路線圖

    springboot整合jsp,實(shí)現(xiàn)公交車(chē)站路線圖

    這篇文章主要介紹了springboot整合jsp,實(shí)現(xiàn)公交車(chē)站路線圖的步驟,幫助大家更好的理解和使用springboot框架,感興趣的朋友可以了解下
    2021-01-01

最新評(píng)論

比如县| 出国| 栾川县| 海晏县| 施甸县| 满洲里市| 长岛县| 固安县| 建昌县| 象州县| 莎车县| 鲁甸县| 克拉玛依市| 宜兰县| 南岸区| 尼玛县| 忻州市| 高阳县| 泽州县| 大埔县| 贵阳市| 应城市| 新疆| 融水| 阜宁县| 长汀县| 新疆| 富阳市| 五峰| 镇坪县| 通河县| 芦山县| 呼和浩特市| 共和县| 中超| 芜湖市| 西充县| 精河县| 兴义市| 东丽区| 太原市|