资源简介
自定义的JList,像android的ListView,可以点击按钮后马上删除当前条,并即时显示最新数据,有点数据驱动UI的感觉。Swing自定义控件必备。

代码片段和文件信息
package demo;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import java.util.Collections;
import java.util.EventListener;
import java.util.List;
import javax.swing.BoxLayout;
import javax.swing.JComponent;
import javax.swing.JLabel;
/**
* 自定义JList每个cell都是一个component这个component就可以任意定义了比如用一个JPanel来展示
* baseList Demo 核心类
* @ClassName baseList
* @author Jet
* @date 2012-8-7
*/
public class baseList extends JComponent{
private static final long serialVersionUID = 1L;
// list的源
private ListSource source;
public ListSource getSource() {
return source;
}
/**
* 设置baseList的源
* @param source ListSource类型参数
*/
public void setSource(ListSource source) {
if (source == null) {
return;
} else {
this.source.removeSourceRefreshListener(this);
this.source = null;
}
this.source = source;
this.source.addSourceRefreshListener(this);
this.refreshData();
}
// 显示控件 定义一个接口
private ListCellIface celliface;
/**
* 设置要显示的控件
* @param cell
*/
public void setCellIface(ListCellIface cell) {
this.celliface = cell;
}
// 所有的控件 在对当前项操作时调用此变量
private List totalcell = new ArrayList();
// 选中的颜色
private Color selectColor = new Color(252 233 161);
public Color getSelectColor() {
return selectColor;
}
public void setSelectColor(Color selectColor) {
this.selectColor = selectColor;
}
// 鼠标经过的颜色
private Color passColor = new Color(196 227 248);
public Color getPassColor() {
return passColor;
}
public void setPassColor(Color passColor) {
this.passColor = passColor;
}
// 选中的索引
private int selectIndex = -1;
/**
* 选中某一行时执行此方法
* @param selectIndex
*/
public void setSelectIndex(int selectIndex) {
for (int i = 0; i < totalcell.size(); i++) {
//所有项设置无背景
totalcell.get(i).setOpaque(false);
totalcell.get(i).setBackground(null);
if (celliface != null)
((ListCellIface) totalcell.get(i)).setSelect(false);
}
if (selectIndex < totalcell.size() && selectIndex > -1) {
//为选中项设置背景
totalcell.get(selectIndex).setOpaque(true);
totalcell.get(selectIndex).setBackground(blist.getSelectColor());
if (celliface != null)
((ListCellIface) totalcell.get(selectIndex)).setSelect(true);
}
this.selectIndex = selectIndex;
}
public int getSelectIndex() {
return selectIndex;
}
// 自身
private baseList blist = this;
public baseList() {
this.setLayout(new BoxLayout(this BoxLayout.Y_AXIS));
source = new ListSource();
}
/**
* 刷新数据
*/
public void refreshData() {
if (source.getAllCell().size() != 0) {
//排序
Collections.sort(source.getAllCell() source.getComparator());
}
this.removeAll();
this.totalcell.clear();
for (int i = 0; i < source.getAllCell().size(); i++) {
JComponent cell = null;
if
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 301 2012-08-07 14:08 MyListDemo\.classpath
文件 386 2012-08-07 14:08 MyListDemo\.project
文件 598 2012-08-07 14:08 MyListDemo\.settings\org.eclipse.jdt.core.prefs
文件 1798 2012-08-09 20:31 MyListDemo\bin\demo\ba
文件 4502 2012-08-09 20:31 MyListDemo\bin\demo\ba
文件 1467 2012-08-07 14:18 MyListDemo\bin\demo\ba
文件 1092 2012-08-09 20:36 MyListDemo\bin\demo\CellPanel$1.class
文件 2136 2012-08-09 20:36 MyListDemo\bin\demo\CellPanel.class
文件 223 2012-08-07 14:18 MyListDemo\bin\demo\ListCellIface.class
文件 2189 2012-08-07 14:19 MyListDemo\bin\demo\ListSource.class
文件 2903 2012-08-09 20:36 MyListDemo\bin\demo\Mainfr
文件 786 2012-08-07 14:19 MyListDemo\bin\demo\ScreenUtil.class
文件 5355 2012-08-09 20:31 MyListDemo\src\demo\ba
文件 1043 2012-08-07 14:18 MyListDemo\src\demo\ba
文件 1626 2012-08-09 20:36 MyListDemo\src\demo\CellPanel.java
文件 333 2012-08-07 14:18 MyListDemo\src\demo\ListCellIface.java
文件 1516 2012-08-07 14:19 MyListDemo\src\demo\ListSource.java
文件 2063 2012-08-09 20:36 MyListDemo\src\demo\Mainfr
文件 641 2012-08-07 14:19 MyListDemo\src\demo\ScreenUtil.java
目录 0 2012-08-09 20:38 MyListDemo\bin\demo
目录 0 2012-08-09 20:38 MyListDemo\src\demo
目录 0 2012-08-09 20:38 MyListDemo\.settings
目录 0 2012-08-09 20:38 MyListDemo\bin
目录 0 2012-08-09 20:38 MyListDemo\src
目录 0 2012-08-09 20:38 MyListDemo
----------- --------- ---------- ----- ----
30958 25
相关资源
- java图片浏览器跨平台运行程序与源码
- 基于java的在线考试系统-毕业设计
- 微博系统(Java源码,servlet+jsp),适
- java串口通信全套完整代码-导入eclip
- Android之自定义ToggleButton使用
- jsonarray所必需的6个jar包.rar
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- 百度地图自定义Markerandroid
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
评论
共有 条评论