一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - Java Swing組件下拉菜單控件JComboBox用法示例

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

2021-02-05 11:43pzy4447 Java教程

這篇文章主要介紹了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)的文本可以編輯,因此這種組件被稱為組合框。注意,對選項(xiàng)的編輯只會影響當(dāng)前項(xiàng),而不會改變列表內(nèi)容。可以使用additem方法來添加選項(xiàng)列表,或者使用insertitemat在任何位置插入選項(xiàng);然而如果有大量選項(xiàng)需要添加,這種方法是非常笨重的,可以先構(gòu)造一個(gè)defaultcomboboxmodel,使用addelement加載選項(xiàng),最后在調(diào)用jcombobox的setmodel方法。

常用方法如下:

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

示例代碼:

jcomboboxbasicusedemo.java

?
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
96
97
98
99
100
101
102
103
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 - www.ythuaji.com.cn");
    setsize(default_width, default_height);
    //添加label
    label = new jlabel("歡迎來到服務(wù)器之家 www.ythuaji.com.cn");
    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);
    //自動適配所有控件大小
    //frame.pack();
    //設(shè)置窗體位置在屏幕中央
    frame.setlocationrelativeto(null);
    //顯示窗體
    frame.setvisible(true);
  }
}

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

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

下面分析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í)它總會被激活兩次。

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

itemlistener:將節(jié)點(diǎn)的事件分為2種類型:selected和deselected。對于每種事件,均可以調(diào)用getitem()方法來獲取相應(yīng)節(jié)點(diǎn)。

因此,如果業(yè)務(wù)邏輯只關(guān)心最新被選中的節(jié)點(diǎn),那么使用itemlistener是比較合適的。希望本文所述對大家java程序設(shè)計(jì)有所幫助。

原文鏈接:http://www.cnblogs.com/pzy4447/p/4641463.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美成人二区 | 99这里只有精品在线 | 国产精品视频在线观看 | 免费特黄一区二区三区视频一 | 丰满大屁股美女一级毛片 | 花蝴蝶www | 国产一区私人高清影院 | 91天堂在线视频 | 久久精品热在线观看30 | 99色在线视频 | 毛片免费全部免费观看 | 欧洲女同同性videos0 | 成在线人免费视频一区二区三区 | 亚洲成av人片天堂网 | 日本人护士免费xxxx视频 | 欧美一区二区三区在线观看不卡 | 91影视在线看免费观看 | 秋霞717理论片在线观看 | 热热99| 免费国产好深啊好涨好硬视频 | 日本一二线不卡在线观看 | 国产传媒天美果冻 | 荡女淫春2古装 | 超碰97 | 国产精品香蕉夜间视频免费播放 | 亚洲精品色综合久久 | 男人在线影院 | 国产午夜免费视频 | 亚洲成人影院在线 | re99热 | 国产亚洲精品一区二区在线播放 | 午夜dj影院在线视频观看完整 | 苍井空色欲迷墙 | 日韩欧美视频二区 | 亚洲午夜久久久久久91 | 91制片厂制作传媒网站破解 | 久久成人国产精品一区二区 | 乌克兰成人性色生活片 | 毛片小视频| 99精品视频在线观看re | 国产精品久久久久久吹潮 |