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

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

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - Java的GUI編程之列表和組合框的設計使用

Java的GUI編程之列表和組合框的設計使用

2020-01-08 14:36goldensun JAVA教程

這篇文章主要介紹了Java的GUI編程之列表和組合框的設計使用,是Java圖形界面編程中的基礎知識,需要的朋友可以參考下

列表和組合框是又一類供用戶選擇的界面組件,用于在一組選擇項目選擇,組合框還可以輸入新的選擇。
列表

列表(JList)在界面中表現為列表框,是JList類或它的子類的對象。程序可以在列表框中加入多個文本選擇項條目。列表事件的事件源有兩種:
一是鼠標雙擊某個選項:雙擊選項是動作事件,與該事件相關的接口是ActionListener,注冊監視器的方法是addActionListener(),接口方法是actionPerformed(ActionEvent e)。
二是鼠標單擊某個選項:單擊選項是選項事件,與選項事件相關的接口是ListSelectionListener,注冊監視器的方法是addListSelectionListener,接口方法是valueChanged(ListSelectionEvent e)。

JList 類的常用構造方法:

  • JList():建立一個列表。
  • JList(String list[]):建立列表,list是字符串數組,數組元素是列表的選擇條目。

JList類的常用方法:

  • getSelectedIndex():獲取選項的索引。返回最小的選擇單元索引;只選擇了列表中單個項時,返回該選擇。
  • getSelectedValue():獲取選項的值。
  • getSelectedIndices():返回所選的全部索引的數組(按升序排列)。
  • getSelectedValues(),:返回所有選擇值的數組,根據其列表中的索引順序按升序排序。
  • getItemCount():獲取列表中的條數。
  • setVisibleRowCount(int n):設置列表可見行數。
  • setSelectionMode(int seleMode):設置列表選擇模型。選擇模型有單選和多選兩種。
  • 單選:ListSelectionModel.SINGLE_SELECTION.
  • 多選:ListSelectionModel.MULTIPLE.INTERVAL_SELECTION.
  • remove(int n):從列表的選項菜單中刪除指定索引的選項。
  • removeAll():刪除列表中的全部選項。

列表可以添加滾動條,列表添加滾動條的方法是先創建列表,然后再創建一個JScrollPane滾動面板對象,在創建滾動面板對象時指定列表。以下代碼示意為列表list2添加滾動條:

?
1
JScrollPane jsp = new JScrollPane(list2);

【例】小應用程序有兩個列表,第一個列表只允許單選,第二個列表允許多選。

?
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
import java.applet.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class MyWindow extends JFrame implements ListSelectionListener{
  JList list1,list2;
  String news[]={"人民日報","新民晚報","浙江日報","文匯報"};
  String sports[]={"足球","排球","乒乓球","籃球"};
  JTextArea text;
  MyWindow(String s){
    super(s);
    Container con = getContentPane();
    con.setBackground(Color.BLUE);
    con.setLayout(new GridLayout(2,2));
    con.setSize(200,500);
    list1 = new JList(news);
    list1.setVisibleRowCount(3);
    list1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    list1.addListSelectionListener(this);
    list2 = new JList(sports);
    list2.setVisibleRowCount(2);
    list2.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
    list2.addListSelectionListener(this);
    con.add(list1);
    con.add(list2);
    text= new JTextArea(10,20);
    con.add(text);
    this.setVisible(true);
    this.pack();
  }
  public void valueChanged(ListSelectionEvent e){// 每當選擇值發生更改時調用
    if(e.getSource()==list1){
      text.setText(null);
      Object listValue = ((JList) e.getSource()).getSelectedValue();
      String seleName = listValue.toString();
      for(int i=0;i<news.length;i++)
        if(news[i].equals(seleName)){
          text.append(seleName+ "被選中\n");
        }
    }
    else if(e.getSource()==list2){
      text.setText(null);
      int tempList[] =list2.getSelectedIndices();
      for(int i=0;i<tempList.length;i++)
        text.append(sports[tempList[i]] + "被選中\n");
     }
   }
 }
public class Example6_3 extends Applet{
  MyWindow myWin = new MyWindow("列表示例");
}

組合框

組合框(JComboBox)是文本框和列表的組合,可以在文本框中輸入選項,也可以單擊下拉按鈕從顯示的列表中進行選擇。

組合框的常用構造方法:

  • JComboBox():建立一個沒有選項的JComboBox對象。
  • JComboBox(JComboBoxModel aModel):用數據模型建立一個JComboBox對象。
  • JComboBox(Object[]items):利用數組對象建立一個JComboBox對象。

組合框的其他常用方法有以下幾個:

  • addItem(Object obj):向組合框加選項。
  • getItemCount():獲取組合框的條目總數。
  • removeItem(Object ob):刪除指定選項。
  • removeItemAt(int index):刪除指定索引的選項。
  • insertItemAt(Object ob,int index):在指定的索引處插入選項。
  • getSelectedIndex():獲取所選項的索引值(從0開始)。
  • getSelectedItem():獲得所選項的內容。
  • setEditable(boolean b):設為可編輯。組合框的默認狀態是不可編輯的,需要調用本方法設定為可編輯,才能響應選擇輸入事件。

在JComboBox對象上發生事件分為兩類。一是用戶選定項目,事件響應程序獲取用戶所選的項目。二是用戶輸入項目后按回車鍵,事件響應程序讀取用戶的輸入。第一類事件的接口是ItemListener;第二類事件是輸入事件,接口是ActionListener。

【例】一個說明組合框用法的應用程序。程序中聲明的組合框子類實現ItemLister接口和ActionListener接口。組合框子類的窗口中設置了一個文本框和一個組合框,組合框中有三個選擇。實現接口的監視方法將組合框的選擇結果在文本框中顯示。

?
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
public class Example6_4{
  public static void main(String args[]){
    ComboBoxDemo mycomboBoxGUI = new ComboBoxDemo();
  }
}
class ComboBoxDemo extends JFrame implements ActionListener,ItemListener{
  public static final int Width = 350;
  public static final int Height = 150;
  String proList[] = { "踢足球","打籃球","打排球" };
  JTextField text;
  JComboBox comboBox;
  public ComboBoxDemo(){
    setSize(Width,Height);
    setTitle("組合框使用示意程序");
    Container conPane = getContentPane();
    conPane.setBackground(Color.BLUE);
    conPane.setLayout(new FlowLayout());
    comboBox = new JComboBox(proList);
    comboBox.addActionListener(this);
    combobox.addItemListener(this);
    comboBox.setEditable(true);//響應鍵盤輸入
    conPane.add(comboBox);
    text = new JTextField(10);
    conPane.add(text);
    this.setVisible(true);
  }
  public void actionPerformed(ActionEvent e){
    if(e.getSource()==comboBox)
      text.setText(comboBox.getSelectedItem().toString());
  }
  public void itemStateChanged(ItemEvent e){
    if(e.getSource()==comboBox){
      text.setText(comboBox.getSelectedItem().toString());
    }
  }
}

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 99久久成人| 91丝袜足控免费网站xx | 暴露狂婷婷 | 干美女在线视频 | 亚洲欧洲网站 | 欧美高清在线不卡免费观看 | 天天色综合三 | 特黄未满14周岁毛片 | 亚洲好色网 | 无人在线视频高清免费播放 | 日本不卡视频免费的 | 国产成人亚洲精品一区二区在线看 | 范冰冰特黄xx大片 | 久久精品热99看 | 91中文字幕yellow字幕网 | chinese踩踏调教vk | 免费欧美一级片 | 九九精品免视频国产成人 | 韩国成人毛片aaa黄 含羞草国产亚洲精品岁国产精品 | 菠萝视频5正版在线观看 | 国产亚洲精品第一综合linode | 亚洲国产精品久久网午夜 | 国产视频久久久久 | 精品亚洲麻豆1区2区3区 | 青春草视频在线免费观看 | 美女用手扒自己下部 | 欧美一级视频免费观看 | 久久99r66热这里只有精品 | 精品国产欧美一区二区三区成人 | 国产欧美久久一区二区 | 欧美精品亚洲精品日韩专区va | 亚洲成年人免费网站 | 全日爱韩国视频在线观看 | 91av爱爱| 亚洲娇小videos| 青青青青久久国产片免费精品 | 久久久91精品国产一区二区 | 男生和老师一起差差差 | 国产精品视频第一区二区三区 | 国产嘿咻| 欧美精品超清在线播放 |