📄 sample23_6.java
字号:
package wyf.jc;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
//定义该类继承自JFrame
public class Sample23_6 extends JFrame implements ListSelectionListener
{
//创建列表
private JList jl=new JList();
//创建JPanel对象
private JPanel jpy=new JPanel();
//创建滚动窗口
private JScrollPane jspz=new JScrollPane(jl);
private JScrollPane jspy=new JScrollPane(jpy);
//创建分割窗格
JSplitPane jspw=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,jspz,jspy);
//创建字符串数组
private String[] str=new String[20];
//创建复选框数组
private JCheckBox[] jcb=new JCheckBox[20];
public Sample23_6()
{
//设置分割窗格中分割条的初始位置与宽度
jspw.setDividerLocation(100);
jspw.setDividerSize(4);
//设置列表的选择模式使其允许多选
jl.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
//设置列表的数据模型
jl.setListData(str);
//为列表注册ListSelectionEvent监听器
jl.addListSelectionListener(this);
//设置JPanel的布局管理器
jpy.setLayout(new GridLayout(4,10));
//对复选框数组进行初始化
for(int i=0;i<str.length;i++)
{
str[i]="选择项"+i;
jcb[i]=new JCheckBox(""+i);
jcb[i].setBounds(120+(i%6)*45,10+(i/6)*35,40,30);
jcb[i].setEnabled(false);
jpy.add(jcb[i]);
}
//将容器JSplitPane添加进窗体
this.add(jspw);
//设置窗体的标题、大小位置以及可见性
this.setTitle("列表示例");
this.setResizable(false);
this.setBounds(100,100,360,250);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
//实现ListSelectionListener接口中的事件处理方法
public void valueChanged(ListSelectionEvent e)
{
//当列表触发事件后,设置复选框的选项
for(int i=e.getFirstIndex();i<=e.getLastIndex();i++)
{
jcb[i].setSelected(((JList)e.getSource()).isSelectedIndex(i));
}
}
public static void main(String[] args)
{
//创建Sample23_6窗体对象
new Sample23_6();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -