📄 detailtables.java
字号:
package desktop;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
import javax.swing.table.*;
import javax.swing.event.*;
public 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 + -