⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 listandcomboboxexam.java

📁 Java程序设计实用教程源代码 本书源代码按章分别放置在不同的文件夹中,所有程序均在JDK1.6环境下编译运行正常,除了第13章需要建立ODBC数据源之外,其他程序只要有Java运行环境即可直接运行
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class listAndComboBoxExam extends JFrame{
  JPanel jp1 = new JPanel();
  JPanel jp2 = new JPanel();
  JComboBox jComboBox; // 组合框
  JLabel jlabel1; //标签
  String[] captions = {"SINGLE", "SINGLE_INTERVAL", "MULTIPLE_INTERVAL"};
  String[] records = {"单选模式", "间隔单选模式", "间隔多选模式"};
  String[] books = {
      "Java 定价25.80", "C 定价23.70", "C++ 定价32.60", "C# 定价27.20",
      "Delphi 定价29.30", "VB 定价21.40", "Perl 定价52.90", "Shell 定价57.30",
      "JSP 定价35.80", "SmallTalk 定价42.70"};
  double[] fee = {
      25.80, 23.70, 32.60, 27.20, 29.30, 21.40, 52.90, 57.30, 35.80,42.70};
  JList list = new JList(books);
  JTextField t1 = new JTextField("这里显示所选数目的金额合计");
  public listAndComboBoxExam() { // 构造方法
    super("JList & JComboBox演示");
    jp1.setLayout(new FlowLayout());
    // 依据captions数组生成一个组合框并设置一屏可显示的项数
    jComboBox = new JComboBox(captions);
    jComboBox.setMaximumRowCount(3);
    // 将组合框加入内容格
    jp1.add(jComboBox);
    jlabel1 = new JLabel(records[0]);
    jp1.add(jlabel1); 
    jp2.setLayout(new BoxLayout(jp2, BoxLayout.X_AXIS));
		t1.setEditable( false );
		jp2.add(new JLabel("费用合计"));
		jp2.add(t1);
		list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
	  JScrollPane ps = new JScrollPane(list);
    getContentPane().add(ps, BorderLayout.CENTER);
    getContentPane().add(jp1, BorderLayout.NORTH);
    getContentPane().add(jp2, BorderLayout.SOUTH);
    // 生成一个匿名内部类来处理JComboBox事件
    jComboBox.addItemListener(new ItemListener() {
      // 实现itemStateChanged()方法
      public void itemStateChanged(ItemEvent e) {
      	int[] vals={ListSelectionModel.SINGLE_SELECTION,
      		ListSelectionModel.SINGLE_INTERVAL_SELECTION,
      		ListSelectionModel.MULTIPLE_INTERVAL_SELECTION };

        if (e.getStateChange() == ItemEvent.SELECTED) {
          // 确定选中项下标,重新设置标签
          int i = jComboBox.getSelectedIndex();
          jlabel1.setText(records[i]);
          list.setSelectionMode( vals[i] );
        }
      }
    });
    // 生成一个匿名内部类来处理JList事件
    list.addListSelectionListener(new ListSelectionListener(){ 
    	public void valueChanged( ListSelectionEvent e ) {
    		if ( ! e.getValueIsAdjusting() ) {
    			double sum = 0;
    			for (int i = 0; i < list.getModel().getSize(); i++ ) {
    				if (list.isSelectedIndex(i)) {
    					sum += fee[i];
    				}
    			}
    			t1.setText("" + sum );
    			t1.repaint();
  			}
  		}
    });
    setSize(300, 200); 
    addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent e) {
        System.exit(0);
      }
    });
  }
  public static void main(String args[]) {
    listAndComboBoxExam obj = new listAndComboBoxExam();
    obj.setVisible(true);
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -