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

Java的GUI編程之列表和組合框的設(shè)計(jì)使用

 更新時(shí)間:2015年10月08日 14:52:26   投稿:goldensun  
這篇文章主要介紹了Java的GUI編程之列表和組合框的設(shè)計(jì)使用,是Java圖形界面編程中的基礎(chǔ)知識(shí),需要的朋友可以參考下

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

列表(JList)在界面中表現(xiàn)為列表框,是JList類或它的子類的對(duì)象。程序可以在列表框中加入多個(gè)文本選擇項(xiàng)條目。列表事件的事件源有兩種:
一是鼠標(biāo)雙擊某個(gè)選項(xiàng):雙擊選項(xiàng)是動(dòng)作事件,與該事件相關(guān)的接口是ActionListener,注冊(cè)監(jiān)視器的方法是addActionListener(),接口方法是actionPerformed(ActionEvent e)。
二是鼠標(biāo)單擊某個(gè)選項(xiàng):?jiǎn)螕暨x項(xiàng)是選項(xiàng)事件,與選項(xiàng)事件相關(guān)的接口是ListSelectionListener,注冊(cè)監(jiān)視器的方法是addListSelectionListener,接口方法是valueChanged(ListSelectionEvent e)。

JList 類的常用構(gòu)造方法:

  • JList():建立一個(gè)列表。
  • JList(String list[]):建立列表,list是字符串?dāng)?shù)組,數(shù)組元素是列表的選擇條目。

JList類的常用方法:

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

列表可以添加滾動(dòng)條,列表添加滾動(dòng)條的方法是先創(chuàng)建列表,然后再創(chuàng)建一個(gè)JScrollPane滾動(dòng)面板對(duì)象,在創(chuàng)建滾動(dòng)面板對(duì)象時(shí)指定列表。以下代碼示意為列表list2添加滾動(dòng)條:

  JScrollPane jsp = new JScrollPane(list2);

【例】小應(yīng)用程序有兩個(gè)列表,第一個(gè)列表只允許單選,第二個(gè)列表允許多選。

import java.applet.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class MyWindow extends JFrame implements ListSelectionListener{
  JList list1,list2;
  String news[]={"人民日?qǐng)?bào)","新民晚報(bào)","浙江日?qǐng)?bào)","文匯報(bào)"};
  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){// 每當(dāng)選擇值發(fā)生更改時(shí)調(diào)用
    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+ "被選中\(zhòng)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]] + "被選中\(zhòng)n");
     }
   }
 }
public class Example6_3 extends Applet{
  MyWindow myWin = new MyWindow("列表示例");
}

組合框

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

組合框的常用構(gòu)造方法:

  • JComboBox():建立一個(gè)沒(méi)有選項(xiàng)的JComboBox對(duì)象。
  • JComboBox(JComboBoxModel aModel):用數(shù)據(jù)模型建立一個(gè)JComboBox對(duì)象。
  • JComboBox(Object[]items):利用數(shù)組對(duì)象建立一個(gè)JComboBox對(duì)象。

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

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

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

【例】一個(gè)說(shuō)明組合框用法的應(yīng)用程序。程序中聲明的組合框子類實(shí)現(xiàn)ItemLister接口和ActionListener接口。組合框子類的窗口中設(shè)置了一個(gè)文本框和一個(gè)組合框,組合框中有三個(gè)選擇。實(shí)現(xiàn)接口的監(jiān)視方法將組合框的選擇結(jié)果在文本框中顯示。

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);//響應(yīng)鍵盤輸入
    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());
    }
  }
}

相關(guān)文章

  • springboot springmvc拋出全局異常的解決方法

    springboot springmvc拋出全局異常的解決方法

    這篇文章主要為大家詳細(xì)介紹了springboot springmvc拋出全局異常的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • 基于java中的PO VO DAO BO POJO(詳解)

    基于java中的PO VO DAO BO POJO(詳解)

    下面小編就為大家?guī)?lái)一篇基于java中的PO VO DAO BO POJO(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • Java的string類為什么是不可變的

    Java的string類為什么是不可變的

    這篇文章主要介紹了Java的string類為什么是不可變的,總結(jié)了三個(gè)答案,需要的朋友可以參考下
    2014-04-04
  • 批量上傳Jar包到Maven私服的工具的方法

    批量上傳Jar包到Maven私服的工具的方法

    這篇文章主要介紹了批量上傳Jar包到Maven私服的工具的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • Java原生操作JDBC連接以及原理詳解

    Java原生操作JDBC連接以及原理詳解

    這篇文章主要給大家介紹了關(guān)于Java原生操作JDBC連接以及原理的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 淺談Java自定義注解和運(yùn)行時(shí)靠反射獲取注解

    淺談Java自定義注解和運(yùn)行時(shí)靠反射獲取注解

    下面小編就為大家?guī)?lái)一篇淺談Java自定義注解和運(yùn)行時(shí)靠反射獲取注解。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-11-11
  • 利用Java簡(jiǎn)單實(shí)現(xiàn)一個(gè)代碼行數(shù)統(tǒng)計(jì)器方法實(shí)例

    利用Java簡(jiǎn)單實(shí)現(xiàn)一個(gè)代碼行數(shù)統(tǒng)計(jì)器方法實(shí)例

    這篇文章主要給大家介紹了關(guān)于如何利用Java簡(jiǎn)單實(shí)現(xiàn)一個(gè)代碼行數(shù)統(tǒng)計(jì)器的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • 基于module-info.class的問(wèn)題

    基于module-info.class的問(wèn)題

    這篇文章主要介紹了基于module-info.class的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • java8中@Contended注解的使用

    java8中@Contended注解的使用

    本文主要介紹了java8中@Contended注解的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Canal搭建?idea設(shè)置及采集數(shù)據(jù)到kafka的操作方法

    Canal搭建?idea設(shè)置及采集數(shù)據(jù)到kafka的操作方法

    這篇文章主要介紹了Canal搭建idea設(shè)置及采集數(shù)據(jù)到kafka的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-05-05

最新評(píng)論

侯马市| 临澧县| 京山县| 泰来县| 外汇| 偃师市| 明光市| 兴义市| 白城市| 姜堰市| 宣汉县| 延寿县| 铜陵市| 台南市| 翁牛特旗| 西乌珠穆沁旗| 天等县| 旬邑县| 宾川县| 昭觉县| 双鸭山市| 凤城市| 琼结县| 北安市| 特克斯县| 泰州市| 商水县| 萝北县| 永城市| 根河市| 伊宁县| 新郑市| 阳高县| 饶平县| 林口县| 青铜峡市| 定南县| 怀安县| 广水市| 乳源| 徐闻县|