package com.mwq;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.DefaultListModel;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.ListSelectionModel;
import javax.swing.event.ListDataEvent;
import javax.swing.event.ListDataListener;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
public class Index {
private JLabel monthLabel;
private JList monthList;
private JLabel answerLabel;
public void add(JFrame frame) {
frame.setTitle("列表框的使用方法");
frame.setLayout(null);
monthLabel = new JLabel("统计月份:");
monthLabel.setBounds(100, 100, 80, 20);
String[] months = { "1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月",
"9月", "10月", "11月", "12月" };
monthList = new JList(months);
monthList
.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
monthList.setFixedCellHeight(20);
monthList.setVisibleRowCount(6);
monthList.setSelectionBackground(Color.GREEN);
monthList.setSelectionForeground(Color.RED);
monthList.addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
answerLabel.setText("您选择统计的月份有:");
JList list = (JList) e.getSource();
Object[] selectedValues = list.getSelectedValues();
for (int i = 0; i < selectedValues.length; i++)
answerLabel.setText(answerLabel.getText() + " "
+ selectedValues[i]);
}
});
JScrollPane monthScrollPane = new JScrollPane(monthList);
int monthScrollPaneHeight = (int) monthList
.getPreferredScrollableViewportSize().getHeight();
monthScrollPane.setBounds(190, 50, 60, monthScrollPaneHeight);
answerLabel = new JLabel();
answerLabel.setBounds(50, 190, 300, 20);
frame.add(monthLabel);
frame.add(monthScrollPane);
frame.add(answerLabel);
}
public static void main(String[] args) {
JFrame frame = new JFrame("利用JFrame创建窗口");// 创建指定标题的JFrame窗口对象
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 关闭按钮的动作为退出窗口
frame.setSize(400, 300);// 设置窗口大小
Dimension displaySize = Toolkit.getDefaultToolkit().getScreenSize();// 获得显示器大小对象
Dimension frameSize = frame.getSize();// 获得窗口大小对象
if (frameSize.width > displaySize.width)
frameSize.width = displaySize.width;// 窗口的宽度不能大于显示器的宽度
if (frameSize.height > displaySize.height)
frameSize.height = displaySize.height;// 窗口的高度不能大于显示器的高度
frame.setLocation((displaySize.width - frameSize.width) / 2,
(displaySize.height - frameSize.height) / 2);// 设置窗口居中显示器显示
Index index = new Index();
index.add(frame);// 向JFrame窗口添加标签
frame.setVisible(true);// 设置窗口为可见的,默认为不可见
}
}