📄 listandcomboboxexam.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 + -