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

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

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|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é)合具體實例形式分析了Swing組件下拉菜單控件JComboBox的具體定義、使用方法及相關(guān)使用注意事項,需要的朋友可以參考下

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

jcombobox是swing中的下拉菜單控件。它永遠只能選中一個項目,然而比單選按鈕節(jié)省空間。如果使用seteditable設(shè)置為true則內(nèi)部選項的文本可以編輯,因此這種組件被稱為組合框。注意,對選項的編輯只會影響當前項,而不會改變列表內(nèi)容。可以使用additem方法來添加選項列表,或者使用insertitemat在任何位置插入選項;然而如果有大量選項需要添加,這種方法是非常笨重的,可以先構(gòu)造一個defaultcomboboxmodel,使用addelement加載選項,最后在調(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 - m.ythuaji.com.cn");
    setsize(default_width, default_height);
    //添加label
    label = new jlabel("歡迎來到服務(wù)器之家 m.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);
        }
      }
      };
    //添加一個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)建窗體并指定標題
    jcomboboxbasicusedemo frame = new jcomboboxbasicusedemo();
    //關(guān)閉窗體后退出程序
    frame.setdefaultcloseoperation(jframe.exit_on_close);
    //自動適配所有控件大小
    //frame.pack();
    //設(shè)置窗體位置在屏幕中央
    frame.setlocationrelativeto(null);
    //顯示窗體
    frame.setvisible(true);
  }
}

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

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

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

actionlistener:它在eclipse和netbeans兩個不同的ide中表現(xiàn)出了不同的效果- -。在eclipse中,每當選中新節(jié)點時被激活;而在netbeans中,選擇新節(jié)點時它總會被激活兩次。

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

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

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日本暖暖在线视频 | 高h细节肉爽文办公室 | 91噜噜噜在线观看 | 国产高清小视频 | 亚洲天堂在线视频播放 | 久久精品观看影院2828 | 日本视频二区 | 欧美xbxbxbbxxbb精品 | 2021国产麻豆剧传媒剧情 | 1313午夜精品理伦片 | 国产精品第3页 | 男同志gays | 91东航翘臀女神在线播放 | 日韩欧免费一区二区三区 | 99久久精品免费看国产一区二区 | 公共场合高h短篇 | 欧美午夜视频一区二区三区 | 成人免费观看网欧美片 | 2022国产麻豆剧传媒剧情 | 亚洲AV无码乱码国产麻豆穿越 | 国产精品自在线拍 | 日韩毛片在线 | 91久久精品青青草原伊人 | 女人叉开腿让男人桶 | 日本在线视频网址 | 五月桃花网婷婷亚洲综合 | 免费观看无遮挡www的小视频 | 调教老师肉色丝袜的故事 | 99热影视| 国产精品第页 | 婷婷在线观看香蕉五月天 | 香蕉eeww99国产精选播放 | www.毛片在线观看 | 精品在线99 | 亚洲欧美日韩另类在线 | 免费高清视频在线观看 | 大ji吧快给我别停受不了视频 | 欧美日韩中文国产一区 | 日韩毛片免费 | 日产欧产va1 | 欧美综合精品一区二区三区 |