📄 checklistdemo.java
字号:
//CheckListDemo.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class CheckListDemo extends JFrame
{
public CheckListDemo ()
{
//设置框架窗口标题
super("Swing List Demo");
String[] data = {
"Item one", " Item two", " Item three", " Item four",
"Item five", " Item six", " Item seven", " Item eight",
"Item night", " Item ten", " Item elevent", " Item twelve",
};
//构造数据
CheckableItem[] ItemData =new CheckableItem[data.length];
for(int i=0; i< data.length; i++ )
ItemData[i]=new CheckableItem(data[i]);
//创建JList实例
final JList m_SimpleList = new JList(ItemData);
//设置JLIst的定制绘制器
m_SimpleList.setCellRenderer(new CustomerCellRender());
m_SimpleList.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
int index = m_SimpleList.locationToIndex(e.getPoint());
CheckableItem item = (CheckableItem)m_SimpleList.getModel().getElementAt(index);
item.setSelected(! item.isSelected());
m_SimpleList.repaint();
}
});
//把列表组件放入滚动面板中来实现滚动功能
JScrollPane ps = new JScrollPane(m_SimpleList);
getContentPane().add(ps, BorderLayout.CENTER);
//显示框架窗口
setSize(200, 240);
setVisible(true);
}
//应用程序的入口方法
public static void main(String args[])
{
CheckListDemo frame=new CheckListDemo();
//添加框架窗口的事件监听(监听关闭框架窗口事件)
frame.addWindowListener( new WindowAdapter() {
public void windowClosing(WindowEvent e) {
//正常推出Java虚拟机
System.exit(0);
}
});
}
}
/**
* Cell Render for List used to paint customer List.
*/
class CustomerCellRender extends JCheckBox implements ListCellRenderer
{
public Component getListCellRendererComponent(
JList list,
Object value,
int index,
boolean isSelected,
boolean cellHasFocus)
{
//设置背景色
setBackground(isSelected ? list.getSelectionBackground() : list.getBackground());
//设置前景色
setForeground(isSelected ? list.getSelectionForeground() : list.getForeground());
//设置
setSelected(((CheckableItem)value).isSelected());
//设置显示的文本内容
this.setText(value.toString());
return this;
}
}
/**********************************************************************************************
* Class: CheckableItem
* Purpose: 存放一个单元的数据,包括String(文本值)和isSelected(是否选中)
* Constructor: CheckableItem(String str)
* Parament: str---显示名
* Remark:
**********************************************************************************************/
class CheckableItem
{
//包括两个成员:文本值和是否选中.
private String str;
private boolean isSelected;
/**********************************************************************************************
* Constructor:CheckableItem
* Purpose: 设置文本值
* Parament: str:文本值
* Remark:
**********************************************************************************************/
public CheckableItem(String str)
{
this.str = str;
isSelected = false;
}
/******************************************************************************************
* MethodName:setSelected(boolean b)
* Purpose: 设置选中状态.
* Input: b:是否被选中
* Output: void
******************************************************************************************/
public void setSelected(boolean b){
isSelected = b;
}
/******************************************************************************************
* MethodName:isSelected()
* Purpose: 判断是否被选中
* Input: void
* Output: boolean:选中状态
******************************************************************************************/
public boolean isSelected(){
return isSelected;
}
/******************************************************************************************
* MethodName:toString
* Purpose: 获得显示名
* Input: void
* Output: String---显示名
******************************************************************************************/
public String toString(){
return str;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -