程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java的GUI編程之列表和組合框的設計應用

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

編輯:關於JAVA

Java的GUI編程之列表和組合框的設計應用。本站提示廣大學習愛好者:(Java的GUI編程之列表和組合框的設計應用)文章只能為提供參考,不一定能成為您想要的結果。以下是Java的GUI編程之列表和組合框的設計應用正文


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

列表(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添加轉動條:

  JScrollPane jsp = new JScrollPane(list2);

【例】小運用法式有兩個列表,第一個列表只許可單選,第二個列表許可多選。

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接口。組合框子類的窗口中設置了一個文本框和一個組合框,組合框中有三個選擇。完成接口的監督辦法將組合框的選擇成果在文本框中顯示。

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());
    }
  }
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved