资源简介
自定义的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
相关资源
- 2020 兴业银行Java笔试题
- java做服务器 android做客户端 实现聊天
- Java语言程序设计(基础篇) 机械工业
- java游戏开发之射击游戏
- javaweb购物车(全)
- linux-java调用c语言编译的so动态库-jn
- 嵌入式java虚拟机移植
- 尚硅谷_Java基础实战_Bank项目_源代码
- JAVA程序设计习题库及答案
- android自定义相机带取景框
-
ba
se64JAVA实现源码 - javax.ejb.EJB 需要的jar____jboss-ejb3x.jar
- Java语言时间片轮转算法
- Java统计英文文章词频
- syslog协议发送日志java
- android自定义veiw——波浪线
- Java常用的3中设计模式代码即工厂模式
- java+Swing+学生事务管理系统
- 宿舍管理系统Java开发,sql数据库
- Java P2P聊天服务端源码
- JAVA简易画图工具
- java聊天系统 可以传送文件哈
- 小的聊天软件的Java实现
- java模拟操作系统
- Android 数据库自定义日历签到
- 传智播客CRM项目视频详细讲解及源代
- Java课程设计魔板游戏源代码
- 常见的Java上机面试题
- 调用百度AI平台上的短文本相似度AP
- JAVA程序与PLC通信——学习使用
评论
共有 条评论