DirectoryTable.java
Dosyayı İndir
import javax.swing.*;
import javax.swing.table.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class DirectoryTable extends JTable{
private File theDirectoryIcon,theNormalFileIcon;
private DirectoryTableModel theModel;
private File theDirectory;
public DirectoryTable(File directory,File directoryIcon,File normalIcon){
theDirectory=directory;
theDirectoryIcon=directoryIcon;
theNormalFileIcon=normalIcon;
addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e){
if(e.getClickCount()==2){
clicked();
}
}
});
theModel=new DirectoryTableModel(directory);
setModel(theModel);
TableColumn tc=getColumnModel().getColumn(0);
tc.setCellRenderer(getRenderer());
}
public void setDirectory(File directory){
theDirectory=directory;
theModel.setDirectory(theDirectory);
}
public void up(){
File file=theDirectory.getParentFile();
if(file!=null){
setDirectory(file);
}
}
private void clicked(){
int row=getSelectedRow();
File file=theModel.getFile(row);
if(file.isDirectory()){
setDirectory(file);
}
}
private DefaultTableCellRenderer getRenderer(){
return new DefaultTableCellRenderer(){
public Component getTableCellRendererComponent(
JTable table,Object value,
boolean isSelected,
boolean hasFocus,
int row,
int column)
{
File file=(File)value;
JLabel label=(JLabel)super.getTableCellRendererComponent(table,file.getName(),isSelected,hasFocus,row,column);
String iconName=theDirectoryIcon.getPath();
if(!file.isDirectory()){
iconName=theNormalFileIcon.getPath();
}
label.setIcon(new ImageIcon(iconName));
return label;
}
};
}
}
Dosyayı İndir