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添加滚动条:

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

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索java
, 列表
组合框
java gui编程、java gui图形界面编程、java gui编程实例、java的gui编程、java gui编程教程,以便于您获取更多的相关知识。

时间: 2024-10-27 17:55:02

Java的GUI编程之列表和组合框的设计使用_java的相关文章

有关java 中gui 编程问题

问题描述 有关java 中gui 编程问题 为什么要分好几层,直接在jframe上直接添加组健不就行了么? 解决方案 java的GUI(图形用户界面)编程java---GUI编程黑马程序员_java GUI编程 解决方案二: 这是java awt的层次结构.JFrame,JDialog,JWindow与JApplet这四个组件我们统称为最上层(Top-Level)组件,因为其余的Swing组件都必须依附在此四组件之一上才能显示出来. 详解参考:http://wenku.baidu.com/lin

积累的VC编程小技巧之组合框

1.如何正确的得到ComBox的指针 CComboBox *mComb = (CComboBox*)GetDlgItem(IDC_DuanCB); CComboBox *mComb = (CComboBox*)::GetDlgItem(m_hWnd,IDC_DuanCB);   2.CComboBox控件详解 CComboBox控件又称作组合框控件,其有三种形态可供选择,1.简单组合框(Simple)2.下拉组合框(Drop-down)3.下拉列表式组合框(Drop-down list).  

Java的Swing编程中使用SwingWorker线程模式及顶层容器_java

使用SwingWorker线程模式 谨慎地使用并发机制对Swing开发人员来说非常重要.一个好的Swing程序使用并发机制来创建不会失去响应的用户接口-不管是什么样的用户交互,程序总能够对其给出响应.创建一个有响应的程序,开发人员必须学会如何在Swing框架中使用多线程. 一个Swing开发人员将会与下面几类线程打交道: (1)Initial threads(初始线程),此类线程将执行初始化应用代码. (2)The event dispatch thread(事件派发线程),所有的事件处理代码在

解析Java的可变长参数列表及其使用时的注意点_java

Java 可变参数列表 复制代码 代码如下: class A {} 由于所有的类都继承于Object,可以以Object数组为参数的方法: public class parameter { static void printArray(Object[] args){ for(Object obj : args){ System.out.print(obj + " "); } System.out.println(); } public static void main(String[]

关于java GUI编程

问题描述 本人初学JAVA,问的问题要是太傻,不要喷啊.想用JAVA写一个计算器进行学习.查了一些资料,好像java进行GUI编程都是用AWT,Swing,SWT,Jface.都是写代码来增加控件的.请问有没有类似C++中MFC一样的直接拖拽编辑图形界面的工具?谢谢指导. 解决方案 解决方案二:你说的那些东西都是gui基础框架,而你要的东西是在这些框架之上的工具.其实有很多啊,不同的ide都有这样的工具,我最早用的是netbeans里面的东西.Myecipse里面也有,IntelliJ也有.但最

java必学必会之GUI编程_java

一.事件监听 测试代码一: package cn.javastudy.summary; import java.awt.*; import java.awt.event.*; public class TestTextField { public static void main(String args[]) { new MyFrameTextField(); } } class MyFrameTextField extends Frame { MyFrameTextField() { Text

java Gui编程 事件监听机制

1.     GUI编程引言     以前的学习当中,我们都使用的是命令交互方式:        例如:在DOS命令行中通过javac java命令启动程序.     软件的交互的方式:      1. 命令交互方式           图书管理系统     2. 图形交互方式     ava提供了专业的API用于开发图形用户界面     GUI--> Graphic  User   Interface      将要了解GUI API的框架结构,以及GUI组件以及组件之间的关系,容器和布局管理

java Swing列表框和组合框

列表框和组合框在Swing中工作就像它们在老的AWT中工作一样,但如果我们需要它,它们同样被增加功能.另外,它也更加的方便易用.例如,JList中有一个显示String数组的构建器(奇怪的是同样的功能在JComboBox中无效!).下面的例子显示了它们基本的用法.   //: ListCombo.java // List boxes & Combo boxes package c13.swing; import java.awt.*; import java.awt.event.*; impor

096_《Delphi5高级编程丛书之二:GUI编程》

<Delphi5高级编程丛书之二:GUI编程> Delphi 教程 系列书籍 (096) <Delphi5高级编程丛书之二:GUI编程> 网友(邦)整理 EMail: shuaihj@163.com 下载地址: Part1 Part2 Part3 Part4 作者: 徐新华 出版社: 人民邮电出版社 书号: 出版日期:2000年4月 开本: 787*1092 1/16 页码: 496 版次: 2000年4月第一版第一次印刷 内容简介 本书全面深入地介绍了如何运用 Delphi 5进