📄 winexplorer.java
字号:
if(list[i].isDirectory())vDir.add(list[i]);
else vFile.add(list[i]);
}
sortElements(vFile);
sortElements(vDir);
for (int i = 0; i < vDir.size(); i++)model.addFile((File)vDir.elementAt(i));
for (int i = 0; i < vFile.size(); i++)model.addFile((File)vFile.elementAt(i));
}
public void sortElements(Vector v)
{
for(int i=0;i<v.size();i++)
{
int k=i;
for(int j=i+1;j<v.size();j++){
File fa=(File)v.elementAt(j);
File fb=(File)v.elementAt(k);
if(fileSystemView.getSystemDisplayName(fa).toLowerCase().compareTo(
fileSystemView.getSystemDisplayName(fb).toLowerCase())<0)k=j;
}
if(k!=i)swap(k,i,v);
}
}
private void swap(int loc1,int loc2,Vector v){
Object tmp=v.elementAt(loc1);
v.setElementAt(v.elementAt(loc2),loc1);
v.setElementAt(tmp,loc2);
}
class DetailTableModel extends DefaultTableModel {
public DetailTableModel() {
addColumn("名称");
addColumn("大小");
addColumn("修改时间");
}
public void addFile(File f){
addRow(new Object[]{f,new Double(f.length()/1024),
new java.sql.Date(f.lastModified())});
}
public void removeAllRows(){
while(getRowCount()!=0) removeRow(0);
}
public boolean isCellEditable(int row, int column) {return false;}
}
class DetailsTableCellRenderer extends DefaultTableCellRenderer {
DetailsTableCellRenderer() {}
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
if (column == 1){
setHorizontalAlignment(SwingConstants.TRAILING);
isSelected=hasFocus=false;
}else if(column==2){
setHorizontalAlignment(SwingConstants.CENTER);
isSelected=hasFocus=false;
}else setHorizontalAlignment(SwingConstants.LEADING);
return super.getTableCellRendererComponent(
table, value, isSelected, hasFocus, row, column);
}
public void setValue(Object value) {
setIcon(null);
if (value instanceof File) {
File file = (File)value;
setText(fileSystemView.getSystemDisplayName(file));
setIcon(fileSystemView.getSystemIcon(file));
}else{
super.setValue(value);
}
}
}
}
}
class DetailTables extends JTable
{
private DetailTableModel model;
public DetailTables(String[] Columns)
{
model=new DetailTableModel(Columns);
this.setModel(model);
this.setShowGrid(false);
//this.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
TableColumnModel colModel = getColumnModel();
DefaultTableCellRenderer cellModel = new DefaultTableCellRenderer();
cellModel.setHorizontalAlignment(SwingConstants.CENTER);
for (int i=0;i<Columns.length;i++)
colModel.getColumn(i).setCellRenderer(cellModel);
}
public void addRow(String s[])
{
model.addRow(s);
}
public void removeRow(int row)
{
model.removeRow(row);
}
public int getIndex(int id)
{
String sid = ""+id;
int counts = model.getRowCount();
for(int i=0;i<counts;i++)
{
String ss = model.getValueAt(i, 0).toString().trim();
if(ss.equals(sid))
return i;
}
return -1;
}
public void RemoveAll()
{
model.removeAllRows();
}
public void setRowsBGColor(int row1,int row2,int columnCounts)
{
for(int i=0;i<columnCounts;i++)
{
TableColumnModel cmodelItemModel =this.getColumnModel();
TableColumn columnItem = cmodelItemModel.getColumn(i);
columnItem.setCellRenderer( new ColorRenderer(row1,row2) );
}
}
}
class ProcessTables extends JTable
{
private DetailTableModel model;
public ProcessTables(String[] Columns)
{
model=new DetailTableModel(Columns);
setModel(model);
setShowGrid(false);
TableColumnModel colModel = getColumnModel();
IndicatorCellRenderer renderer = new IndicatorCellRenderer(0,100);
renderer.setStringPainted(true);
renderer.setBackground(this.getBackground());
DefaultTableCellRenderer cellModel = new DefaultTableCellRenderer();
cellModel.setHorizontalAlignment(SwingConstants.CENTER);
colModel.getColumn(0).setCellRenderer(cellModel);
colModel.getColumn(1).setCellRenderer(cellModel);
colModel.getColumn(2).setCellRenderer(cellModel);
colModel.getColumn(3).setCellRenderer(renderer);
}
public void addRow(String s[])
{
model.addRow(s);
}
public void setValue(int row,int col,String value)
{
model.setValueAt(value,row,col);
}
public int getIndex(int id)
{
String sid = ""+id;
int counts = model.getRowCount();
for(int i=0;i<counts;i++)
{
String ss = model.getValueAt(i, 0).toString().trim();
if(ss.equals(sid))
return i;
}
return -1;
}
public void removeRow(int row)
{
model.removeRow(row);
}
public void hangUP()
{
int[] selectcount = getSelectedRows();
if(selectcount.length==0)
{
String msg="请先选择文件";
JOptionPane.showMessageDialog(this,msg,"加入队列",JOptionPane.INFORMATION_MESSAGE);
}
else
{
for(int i=0;i<selectcount.length;i++)
{
model.getValueAt(selectcount[i],0);
setValue(selectcount[i],1,"挂起");
}
}
}
}
class IndicatorCellRenderer extends JProgressBar implements TableCellRenderer
{
public IndicatorCellRenderer() {
super(JProgressBar.HORIZONTAL);
setBorderPainted(false);
}
public IndicatorCellRenderer(int min, int max) {
super(JProgressBar.HORIZONTAL, min, max);
setBorderPainted(false);
}
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
int n = 0;
if (! (value instanceof Number)) {
String str;
if (value instanceof String) {
str = (String)value;
} else {
str = value.toString();
}
try {
n = Integer.valueOf(str).intValue();
} catch (NumberFormatException ex) {
}
} else {
n = ((Number)value).intValue();
}
setForeground(Color.red);
setValue(n);
return this;
}
}
class DetailTableModel extends DefaultTableModel
{
/////////////////////////////
public DetailTableModel(String[] Columns)
{
for(int i=0;i<Columns.length;i++)
{
addColumn(Columns[i]);
}
}
/////////////////////////////
public void addRow(String s[])
{
Object object[] = new Object[s.length];
for(int i=0;i<s.length;i++)
{
object[i] = s[i];
}
addRow(object);
//addRow(new Object[]{s[0],s[1],s[2],s[3]});
}
/////////////////////////////
public void removeAllRows()
{
while(getRowCount()!=0) removeRow(0);
}
/////////////////////////////
public boolean isCellEditable(int row, int column) {return false;}
//////////////////////////////
}
class ColorRenderer extends DefaultTableCellRenderer
{
int _row;
int row1,row2;
public ColorRenderer(int r1,int r2)
{
row1 = r1;
row2 = r2;
}
public Component getTableCellRendererComponent( JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column )
{
setHorizontalAlignment(SwingConstants.CENTER);
if(row>=row1&&row<=row2)
{
setBackground(Color.PINK);
}
else
{
setBackground(table.getBackground());
}
return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -