一个用Java实现的Windows资源管理器 - FileList.java
2006-04-26 02:24
549 查看
// FileList.java
/*
* 一个用Java实现的Windows资源管理器
* 一个用Java实现的Windows资源管理器 - JExplorer.java
* 一个用Java实现的Windows资源管理器 - FileTree.java
*
*/
package tl.exercise.swing;
import java.awt.Color;
import java.awt.Component;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.ListCellRenderer;
import javax.swing.ListModel;
import javax.swing.event.ListDataListener;
public class FileList
extends JList{
//PathNode theNode;
FileListModel dataModel;
static final long serialVersionUID = 10;
public FileList() {
dataModel = new FileListModel();
setModel(dataModel);
this.setCellRenderer(new MyCellRenderer());
}
public void fireTreeSelectionChanged(I_fileSystem node) {
//Vector files = node.getFiles();
//theNode = node;
dataModel.setNode(node);
updateUI();
}
}
class FileListModel
implements ListModel {
FileList theList;
I_fileSystem node;
char fileType = I_fileSystem.ALL;
public void setNode (I_fileSystem node) {
this.node = node;
}
public Object getElementAt(int index) {
if (node != null) {
return ((I_fileSystem)node).getChild(fileType, index);
} else {
return null;
}
}
public int getSize() {
if (node != null) {
return ((I_fileSystem)node).getChildCount(fileType);
} else {
return 0;
}
}
public void addListDataListener(ListDataListener l) {
}
public void removeListDataListener(ListDataListener l) {
}
}
class MyCellRenderer extends JLabel implements ListCellRenderer {
public MyCellRenderer() {
setOpaque(true);
}
public Component getListCellRendererComponent(
JList list,
Object value,
int index,
boolean isSelected,
boolean cellHasFocus)
{
FolderNode node = (FolderNode)value;
setIcon(node.getIcon());
setText(value.toString());
setBackground(isSelected ? Color.BLUE.darker().darker(): Color.WHITE);
setForeground(isSelected ? Color.WHITE : Color.BLACK);
return this;
}
}
/*
* 一个用Java实现的Windows资源管理器
* 一个用Java实现的Windows资源管理器 - JExplorer.java
* 一个用Java实现的Windows资源管理器 - FileTree.java
*
*/
package tl.exercise.swing;
import java.awt.Color;
import java.awt.Component;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.ListCellRenderer;
import javax.swing.ListModel;
import javax.swing.event.ListDataListener;
public class FileList
extends JList{
//PathNode theNode;
FileListModel dataModel;
static final long serialVersionUID = 10;
public FileList() {
dataModel = new FileListModel();
setModel(dataModel);
this.setCellRenderer(new MyCellRenderer());
}
public void fireTreeSelectionChanged(I_fileSystem node) {
//Vector files = node.getFiles();
//theNode = node;
dataModel.setNode(node);
updateUI();
}
}
class FileListModel
implements ListModel {
FileList theList;
I_fileSystem node;
char fileType = I_fileSystem.ALL;
public void setNode (I_fileSystem node) {
this.node = node;
}
public Object getElementAt(int index) {
if (node != null) {
return ((I_fileSystem)node).getChild(fileType, index);
} else {
return null;
}
}
public int getSize() {
if (node != null) {
return ((I_fileSystem)node).getChildCount(fileType);
} else {
return 0;
}
}
public void addListDataListener(ListDataListener l) {
}
public void removeListDataListener(ListDataListener l) {
}
}
class MyCellRenderer extends JLabel implements ListCellRenderer {
public MyCellRenderer() {
setOpaque(true);
}
public Component getListCellRendererComponent(
JList list,
Object value,
int index,
boolean isSelected,
boolean cellHasFocus)
{
FolderNode node = (FolderNode)value;
setIcon(node.getIcon());
setText(value.toString());
setBackground(isSelected ? Color.BLUE.darker().darker(): Color.WHITE);
setForeground(isSelected ? Color.WHITE : Color.BLACK);
return this;
}
}
相关文章推荐
- 一个用Java实现的Windows资源管理器 - FileTree.java
- java file类实现List生成本地文件与续写本地文件
- java 基于List<MultipartFile>实现多文件上传
- JAVA 中map和List实现一个键对应多个值
- Java中有关File类listFiles的一个小测试
- java java local cache本地缓存的两种实现,一个基于list轮询一个基于timer定时
- java中File.separator分隔同一个路径字符串中的目录的,以实现跨平台
- java java local cache本地缓存的两种实现,一个基于list轮询一个基于timer定时
- 一个用Java实现的Windows资源管理器
- 一个用Java实现的Windows资源管理器 - JExplorer.java
- 阿里巴巴 Java 开发手册:asList 的返回对象是一个 Arrays 内部类,并没有实现集合的修改方法
- 发现java.io.File中 list()方法的一个bug
- 【LeetCode-面试算法经典-Java实现】【206-Reverse Linked List(反转一个单链表)】
- 每日一省之 ———— 一个简单的跳跃表(Skip List)的Java实现
- java java local cache本地缓存的两种实现,一个基于list轮询一个基于timer定时
- 将一个list分成多个list的Java实现。
- java实现List集合中获取上一个下一个元素
- 如何实现Java中一个简单的LinkedList
- Java中Set转List 和 TreeMap中实现自定义类作为key值
- 红黑树的一个java实现