标签:新窗口 agg 状态 dial 有一个 ntp selected 下拉菜单 右键
setBounds(300,300,300,300);设置位置和大小
ActionEvent e 事件是由哪个控件发出的,通通都记录在ActionEvent 这个对象中
e.getActionCommand();‘返回事件源的名字
e.getSource();返回这个事件的事件源本身对象JButton
setHorizontalAlignment(JTextField.RIGHT); 输入框在右边显示
JScrollPane 右边的滚动条
ActionListener是一个通用的事件,每一个控件都有这么一个事件,但是一些控件有自己独立的触发事件
combol(下拉列表)使用ActionListener的缺陷是,如果当前选中的条目,再次被选中,还会触发事件
itemStateChanged 下拉列表条目改变时,是会触发两次这个方法,一次是原来的条目,新的条目被选泽时,所以一般需要进行判断只有被选择的时候进行操作
this.setTitle("下拉菜单事件");
//设置位置和大小
this.setBounds(300, 200, 300, 300);
combo = new JComboBox<>();
combo.addItem("本科");
combo.addItem("专科");
combo.addItem("高中");
combo.addItem("初中");
//ActionListener是一个通用事件,每一个控件都有这么一个事件
//但是一些特殊的控件,有自己独立的事件方法
//combo使用ActionListener的缺陷是,如果当前选中的条目,再次被选择,还是会触发事件
/*combo.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//System.out.println(((JComboBox)e.getSource()).getSelectedItem());
System.out.println(combo.getSelectedItem());
}
});*/
combo.addItemListener(new ItemListener() {
//itemStateChanged如果下拉菜单条目改变
//其实会触发两次这个方法,一次是原来的条目不选择,新的条目被选择
//所以,一般需要进行判断,只是在被选择的时候进行操作
public void itemStateChanged(ItemEvent e) {
//确定状态改变是被选择的状态
if(e.getStateChange() == ItemEvent.SELECTED) {
System.out.println(combo.getItemAt(combo.getSelectedIndex()));
}
}
});
this.add(combo,BorderLayout.NORTH);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
列表框
JList<E> jlist = new JList<E>();
jlist.setVisibleRowcount(3);设置默认可见长度
jlist.setFixedCellHeight(150);设置每一行的高度
JPanel panel = new JPanel();
Student s1 = new Student(1,"张三1",19);
Student s2 = new Student(2,"张三2",18);
Student s3 = new Student(3,"张三3",17);
?
List<Student> list = new ArrayList<>();
list.add(s1);list.add(s2);list.add(s3);
JList<Student> jlist = new JList<>();
//设置默认的可见高度...也就是可见行数,注意,要联合滚动条一起使用
jlist.setVisibleRowCount(3);
//设置宽度
jlist.setFixedCellWidth(150);
//设置每一行的高度
jlist.setFixedCellHeight(50);
//设置单选还是多选
//jlist.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
DefaultListModel<Student> model = new DefaultListModel<>();
model.addElement(s1);
model.addElement(s2);
model.addElement(s3);
model.addElement(s4);
model.addElement(s5);
model.addElement(s6);
//JList没有直接往里面放入集合对象的方法或者构造器,只有一个setModel方法
//但是这个方法需要的是一个ListModel接口对象
//DefaultListModel是ListModel的实现类,其实就类似于ArrayList
jlist.setModel(model);
JScrollPane pane = new JScrollPane(jlist);
JButton btn = new JButton("确定");
btn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
List<Student> stus = jlist.getSelectedValuesList();