• 大小: 16KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-13
  • 语言: Java
  • 标签: JList  自定义  Java  Swing  

资源简介

自定义的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\baseList$1.class

     文件       4502  2012-08-09 20:31  MyListDemo\bin\demo\baseList.class

     文件       1467  2012-08-07 14:18  MyListDemo\bin\demo\baseModel.class

     文件       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\Mainframe.class

     文件        786  2012-08-07 14:19  MyListDemo\bin\demo\ScreenUtil.class

     文件       5355  2012-08-09 20:31  MyListDemo\src\demo\baseList.java

     文件       1043  2012-08-07 14:18  MyListDemo\src\demo\baseModel.java

     文件       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\Mainframe.java

     文件        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


评论

共有 条评论