main
李建辉 6 months ago
parent 07dfccd9b6
commit 3952e9fd98

@ -0,0 +1,72 @@
package com.langtech.plm.bg;
import java.awt.Component;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JCheckBox;
import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.SwingConstants;
import javax.swing.UIManager;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.JTableHeader;
import javax.swing.table.TableCellRenderer;
public class CheckHeaderCellRenderer implements TableCellRenderer {
DefaultTableModel tableModel;
JTableHeader tableHeader;
final JCheckBox selectBox;
public CheckHeaderCellRenderer(final JTable table) {
this.tableModel = (DefaultTableModel) table.getModel();
this.tableHeader = table.getTableHeader();
selectBox = new JCheckBox(tableModel.getColumnName(0));
selectBox.setSelected(false);
tableHeader.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() > 0) {
// 获得选中列
int selectColumn = tableHeader.columnAtPoint(e.getPoint());
if (selectColumn == 0) {
boolean value = !selectBox.isSelected();
selectBox.setSelected(value);
// tableModel.selectAllOrNull(value);
tableHeader.repaint();
if(value) {
for(int i=0;i<table.getRowCount();i++) {
table.setValueAt("1", i, 0);
}
}else {
for(int i=0;i<table.getRowCount();i++) {
table.setValueAt("0", i, 0);
}
}
}
}
}
});
}
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,
int row, int column) {
// TODO Auto-generated method stub
String valueStr = (String) value;
JLabel label = new JLabel(valueStr);
label.setHorizontalAlignment(SwingConstants.CENTER); // 表头标签剧中
selectBox.setHorizontalAlignment(SwingConstants.CENTER);// 表头标签剧中
selectBox.setBorderPainted(true);
JComponent component = (column == 0) ? selectBox : label;
component.setForeground(tableHeader.getForeground());
component.setBackground(tableHeader.getBackground());
component.setFont(tableHeader.getFont());
component.setBorder(UIManager.getBorder("TableHeader.cellBorder"));
return component;
}
}

@ -7,6 +7,7 @@ import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.File;
@ -16,6 +17,7 @@ import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
@ -59,7 +61,6 @@ import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent;
import com.teamcenter.rac.kernel.ListOfValuesInfo;
import com.teamcenter.rac.kernel.TCComponent;
@ -84,7 +85,7 @@ public class QDRWDialog extends JFrame implements ActionListener {
private JTable table;
private String[] header;
private ArrayList<String> gsPrefTopLine;
private ArrayList<Integer> colorList = new ArrayList<Integer>();
private LinkedHashMap<Integer, String> colorMap = new LinkedHashMap<Integer, String>();
private LinkedHashMap<String, String> gsPrefMap = new LinkedHashMap<String, String>();
private LinkedHashMap<String, String> fieldsMap = new LinkedHashMap<String, String>();
private LinkedHashMap<String, String> cfdjPref = new LinkedHashMap<String, String>();
@ -109,6 +110,10 @@ public class QDRWDialog extends JFrame implements ActionListener {
private String taskName;
private ArrayList<Integer> canWriteColume = new ArrayList<Integer>();
private ArrayList<String> sqlField;
private QDRWTableColorRender QDRWTableColorRender;
LinkedHashMap<String,LinkedHashMap<String, ArrayList<LinkedHashMap<String, String>>>> valueMap;
public QDRWDialog(TCSession session,String pref,String taskName) {
// TODO Auto-generated constructor stub
this.session = session;
@ -137,19 +142,19 @@ public class QDRWDialog extends JFrame implements ActionListener {
positionFieldMap.put(split3[0],j);
if(split3.length == 3) {
if(split3[0].contains("#")) {
String[] split = split3[0].split("#");
fieldsMap.put(split[1],split3[1]);
colorList.add(j);
if(split3[1].contains("#")) {
String[] split = split3[1].split("#");
fieldsMap.put(split3[0],split[1]);
colorMap.put(j+1,split3[0]);
}else {
fieldsMap.put(split3[0],split3[1]);
}
if(split3[2].contains("%")) {
String[] split4 = split3[2].split("%");
widtheMap.put(j, Integer.parseInt(split4[0]));
widtheMap.put(j+1, Integer.parseInt(split4[0]));
canWriteColume.add(j);
}else {
widtheMap.put(j, Integer.parseInt(split3[2]));
widtheMap.put(j+1, Integer.parseInt(split3[2]));
}
}
@ -178,9 +183,17 @@ public class QDRWDialog extends JFrame implements ActionListener {
System.out.println("positionMap====="+lovPositionMap);
System.out.println("widtheMap====="+widtheMap);
Collection<String> valuesCollection = fieldsMap.values();
// 创建一个新的列表来保存所有的值
List<String> valuesList = new ArrayList<>(valuesCollection);
// 在列表的第一个位置插入新的 String 值
valuesList.add(0, "");
// 如果需要,可以将列表转回集合
Collection<String> updatedValuesCollection = valuesList;
// 将集合转换为数组
header = valuesCollection.toArray(new String[0]);
header = updatedValuesCollection.toArray(new String[0]);
System.out.println("header==============="+header.length);
JPanel topPanel = getTopPanel();
@ -272,22 +285,53 @@ public class QDRWDialog extends JFrame implements ActionListener {
// table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);//设置JTable的列宽随着列表内容的大小进行调整
// table.setPreferredSize(new Dimension(1200,400));
// 设置自定义渲染器
table.setDefaultRenderer(Object.class, new CustomColorRenderer());
QDRWTableColorRender = new QDRWTableColorRender();
table.setDefaultRenderer(Object.class, QDRWTableColorRender);
JScrollPane pane = new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
for (Entry<Integer, String> map : lovPositionMap.entrySet()) {
JComboBox<String> jComboBox = new JComboBox<String>();
String value = map.getValue();
if(value.contains(",")) {
String[] split = value.split(",");
for (int i = 0; i < split.length; i++) {
jComboBox.addItem(split[i]);
}
}else {
jComboBox.addItem(value);
table.getTableHeader().setDefaultRenderer(new CheckHeaderCellRenderer(table));
table.getColumnModel().getColumn(0).setCellRenderer(new TableCellCheckboxRenderer(table));
// for (Entry<Integer, String> map : lovPositionMap.entrySet()) {
// JComboBox<String> jComboBox = new JComboBox<String>();
// String value = map.getValue();
// if(value.contains(",")) {
// String[] split = value.split(",");
// for (int i = 0; i < split.length; i++) {
// jComboBox.addItem(split[i]);
// }
// }else {
// jComboBox.addItem(value);
// }
// table.getColumnModel().getColumn(map.getKey()).setCellEditor(new DefaultCellEditor(jComboBox));
// }
SwingUtilities.invokeLater(new Runnable() {
public void run() {
// 添加鼠标监听器
table.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2 || e.getClickCount() == 1) {
// TODO Auto-generated method stub
int selectColumn = table.getTableHeader().columnAtPoint(e.getPoint());
int selectedRow = table.rowAtPoint(e.getPoint());
if (selectColumn == 0){
Object valueAt = table.getValueAt(selectedRow, selectColumn);
if (valueAt.toString().equals("1")) {
table.setValueAt("0", selectedRow, selectColumn);
} else {
table.setValueAt("1", selectedRow, selectColumn);
}
}
}
}
});
}
table.getColumnModel().getColumn(map.getKey()).setCellEditor(new DefaultCellEditor(jComboBox));
}
});
pane.setPreferredSize(new Dimension(1800, 850));
pane.setViewportView(table);// 为scrollPane指定显示对象为table
return pane;
@ -333,7 +377,11 @@ public class QDRWDialog extends JFrame implements ActionListener {
dtm1 = new DefaultTableModel(values, titleNames) {
@Override
public boolean isCellEditable(int row, int column) {
return false;
if(column == 0) {
return true;
}else {
return false;
}
}
};
}
@ -370,7 +418,25 @@ public class QDRWDialog extends JFrame implements ActionListener {
});
}else if(source.equals(this.qrqdButton)){
int count = 0;
for (int i = 0; i < table.getRowCount(); i++) {
if (table.getValueAt(i, 0).toString().equals("1")) {
boolean isProsess = false;
String id = table.getValueAt(i, 1).toString();
LinkedHashMap<String, ArrayList<LinkedHashMap<String, String>>> linkedHashMap = valueMap.get(id);
for (Entry<Integer, String> map : colorMap.entrySet()) {
String prefValue = map.getValue();
String[] split = prefValue.split("\\.");
}
count++;
}
}
if (count == 0) {
MessageBox.post("请勾选数据!", "提示 ", MessageBox.INFORMATION);
return;
}
}else if(source.equals(this.ssButton)){
table.removeAll();
dtm1.setRowCount(0);
@ -444,16 +510,56 @@ public class QDRWDialog extends JFrame implements ActionListener {
fieldsSql = fieldsSql.substring(0, fieldsSql.length() - 1);
System.out.println("fieldsSql=========="+fieldsSql);
System.out.println("condition==================="+condition);
String sqlString = "SELECT " + fieldsSql + " FROM LY_CHANGETASSKFORM_DETAILS where 1=1 "+condition;
System.out.println(sqlString);
String sqlIdString = "SELECT ID FROM LY_CHANGETASSKFORM_DETAILS where 1=1 "+condition;
System.out.println("sqlIdString========="+sqlIdString);
Connection conn = getConn();
PreparedStatement stmt = null;
String selectIds = "";
String lastCondition = "";
//查ID
try{
stmt = conn.prepareStatement(sqlIdString);
ResultSet result = stmt.executeQuery();
while (result.next()) {
String id = result.getString("ID");
if(!selectIds.contains(id)) {
selectIds+=id+";";
}
}
if(selectIds != null && !selectIds.isEmpty()) {
if(selectIds.contains(";")) {
String[] split = selectIds.split(";");
StringBuilder sqlIn = new StringBuilder();
sqlIn.append("(");
for (int i = 0; i < split.length; i++) {
sqlIn.append("'"+split[i] +"',");
}
//去掉最后一个,
sqlIn.setLength(sqlIn.length() - 1);
sqlIn.append(")");
System.out.println("sqlIn======================"+sqlIn.toString());
lastCondition += "and ID IN "+sqlIn.toString();
}else {
lastCondition += "and ID='"+ids+"' ";
}
}
} catch (SQLException e1) {
e1.printStackTrace();
}
//存数据的map
LinkedHashMap<String,LinkedHashMap<String, ArrayList<LinkedHashMap<String, String>>>> valueMap = new LinkedHashMap<String,LinkedHashMap<String, ArrayList<LinkedHashMap<String, String>>>>();
valueMap = new LinkedHashMap<String,LinkedHashMap<String, ArrayList<LinkedHashMap<String, String>>>>();
//String sqlString = "SELECT " + fieldsSql + " FROM LY_CHANGETASSKFORM_DETAILS where 1=1 "+lastCondition;
String sqlString = "SELECT * FROM LY_CHANGETASSKFORM_DETAILS where 1=1 "+lastCondition;
System.out.println("sqlString======"+sqlString);
try{
stmt = conn.prepareStatement(sqlString);
ResultSet result = stmt.executeQuery();
ResultSetMetaData metaData = result.getMetaData();
int columnCount = metaData.getColumnCount();
while (result.next()) {
String id = result.getString("ID");
String xh = result.getString("XH");
@ -463,20 +569,27 @@ public class QDRWDialog extends JFrame implements ActionListener {
}else {
tempMap1 = new LinkedHashMap<String, ArrayList<LinkedHashMap<String, String>>>();
}
ArrayList<LinkedHashMap<String, String>> tempList = new ArrayList<LinkedHashMap<String, String>>();
for (int i = 0; i < sqlField.size(); i++) {
LinkedHashMap<String, String> fieldMap = new LinkedHashMap<String, String>();
fieldMap.put(sqlField.get(i),result.getString(i+1) == null? result.getString(i+1) : validateAndFormatDate(result.getString(i+1)));
tempList.add(fieldMap);
}
for (int i = 1; i <= columnCount; i++) {
// 获取列名
String columnName = metaData.getColumnName(i); // 获取实际的列名
// 获取列的值
String columnValue = result.getString(i); // 使用 getObject() 获取列的值
LinkedHashMap<String, String> fieldMap = new LinkedHashMap<String, String>();
fieldMap.put(columnName,columnValue == null? columnValue : validateAndFormatDate(columnValue));
tempList.add(fieldMap);
}
tempMap1.put(xh,tempList);
valueMap.put(id,tempMap1);
}
System.out.println(valueMap.toString());
QDRWTableColorRender.valueMap = valueMap;
QDRWTableColorRender.colorMap = colorMap;
for (Entry<String, LinkedHashMap<String, ArrayList<LinkedHashMap<String, String>>>> map : valueMap.entrySet()) {
ArrayList<String> tableList = new ArrayList<String>();
tableList.add("0");
for (Entry<String, String> tempMap : fieldsMap.entrySet()) {
String pref = tempMap.getKey();
String[] split = pref.split("\\.");
@ -527,25 +640,6 @@ public class QDRWDialog extends JFrame implements ActionListener {
return conn;
}
public static String calculateDate(String dateString, int daysToAdd) {
// 定义日期格式
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
// 解析输入的日期字符串
LocalDate date;
try {
date = LocalDate.parse(dateString, formatter);
} catch (DateTimeParseException e) {
throw new IllegalArgumentException("Invalid date format. Please use yyyy-MM-dd.", e);
}
// 增加或减少天数
LocalDate resultDate = date.plusDays(daysToAdd);
// 格式化结果日期为字符串
return resultDate.format(formatter);
}
public String validateAndFormatDate(String input) {
// 定义输入和输出的日期格式
DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.S");
@ -566,27 +660,96 @@ public class QDRWDialog extends JFrame implements ActionListener {
}
}
// 自定义渲染器
static class CustomColorRenderer extends DefaultTableCellRenderer {
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus,
int row, int column) {
// 调用父类方法获取默认渲染组件
super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
// 设置你想要的颜色逻辑
if (value == null || "".equals(value.toString().trim())) {
setBackground(Color.LIGHT_GRAY); // 空值或空字符串使用浅灰色背景
setForeground(Color.DARK_GRAY); // 深灰色前景
} else {
setBackground(isSelected ? table.getSelectionBackground() : Color.WHITE); // 默认选择或白色背景
setForeground(isSelected ? table.getSelectionForeground() : Color.BLACK); // 默认选择或黑色前景
}
return this;
}
}
// // 自定义渲染器
// static class CustomColorRenderer extends DefaultTableCellRenderer {
// public LinkedHashMap<String,LinkedHashMap<String, ArrayList<LinkedHashMap<String, String>>>> valueMap;
// public LinkedHashMap<Integer, String> colorMap;
//
//
// @Override
// public Component getTableCellRendererComponent(JTable table, Object value,
// boolean isSelected, boolean hasFocus,
// int row, int column) {
// // 调用父类方法获取默认渲染组件
// Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
//
// String id = (String)table.getValueAt(row, 1);
// LinkedHashMap<String, ArrayList<LinkedHashMap<String, String>>> linkedHashMap = valueMap.get(id);
// System.out.println("colorMap======"+colorMap.toString());
// for (Entry<Integer, String> map : colorMap.entrySet()) {
// Integer columnColor = map.getKey();
// if(column == 4 && row == 1) {
// System.out.println("columnColor========"+columnColor);
// String prefValue = map.getValue();
// String[] split = prefValue.split("\\.");
// ArrayList<LinkedHashMap<String, String>> arrayList = linkedHashMap.get(split[0]);
// String sjwcsj = "";
// String jhks = "";
// String jhjs = "";
//
// for (int i = 0; i < arrayList.size(); i++) {
//
// if(arrayList.get(i).containsKey("SJWCSJ")) {
// sjwcsj = arrayList.get(i).get("SJWCSJ");
// }
// if(arrayList.get(i).containsKey("JHKS")) {
// jhks = arrayList.get(i).get("JHKS");
// }
// if(arrayList.get(i).containsKey("JHJS")) {
// jhjs = arrayList.get(i).get("JHJS");
// }
// }
// System.out.println("sjwcsj========"+sjwcsj);
// System.out.println("jhks========"+jhks);
// System.out.println("jhjs========"+jhjs);
// if(sjwcsj != null && !sjwcsj.isEmpty()) {
// c.setBackground(Color.GREEN);
// }else {
// if(jhjs != null && !jhjs.isEmpty() && jhks != null && !jhks.isEmpty()) {
// if(isNotAfterCurrentDate(jhjs)) {
// c.setBackground(Color.RED);
//
//
// System.out.println("row==="+row+"===column==="+column);
// }else {
// //setBackground(Color.YELLOW);
// c.setBackground(Color.YELLOW);
// }
// }
// }
// }
//
// }
//
//
// return c;
// }
// }
//
public boolean dgRW(LinkedHashMap<String, ArrayList<LinkedHashMap<String, String>>> linkedHashMap,String xh) {
ArrayList<LinkedHashMap<String, String>> arrayList = linkedHashMap.get(xh);
for (int i = 0; i < arrayList.size(); i++) {
String RWXDSJ = "";
String SJWCSJ= "";
String QQRW = "";
if(arrayList.get(i).containsKey("RWXDSJ")) {
RWXDSJ = arrayList.get(i).get("RWXDSJ");
}
if(arrayList.get(i).containsKey("SJWCSJ")) {
SJWCSJ = arrayList.get(i).get("SJWCSJ");
}
if(arrayList.get(i).containsKey("QQRW")) {
QQRW = arrayList.get(i).get("QQRW");
}
if((RWXDSJ == null || RWXDSJ.isEmpty()) && (SJWCSJ == null || SJWCSJ.isEmpty()) && ) {
}else {
return true;
}
}
return false;
}
}

@ -0,0 +1,93 @@
package com.langtech.plm.bg;
import java.awt.Color;
import java.awt.Component;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.Map.Entry;
import javax.swing.JTable;
public class QDRWTableColorRender extends TableColorRender {
public LinkedHashMap<String,LinkedHashMap<String, ArrayList<LinkedHashMap<String, String>>>> valueMap;
public LinkedHashMap<Integer, String> colorMap;
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
Component renderer = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
String id = (String)table.getValueAt(row, 1);
LinkedHashMap<String, ArrayList<LinkedHashMap<String, String>>> linkedHashMap = valueMap.get(id);
System.out.println("colorMap======"+colorMap.toString());
for (Entry<Integer, String> map : colorMap.entrySet()) {
Integer columnColor = map.getKey();
if(column == columnColor) {
System.out.println("columnColor========"+columnColor);
String prefValue = map.getValue();
String[] split = prefValue.split("\\.");
ArrayList<LinkedHashMap<String, String>> arrayList = linkedHashMap.get(split[0]);
String sjwcsj = "";
String jhks = "";
String jhjs = "";
for (int i = 0; i < arrayList.size(); i++) {
if(arrayList.get(i).containsKey("SJWCSJ")) {
sjwcsj = arrayList.get(i).get("SJWCSJ");
}
if(arrayList.get(i).containsKey("JHKS")) {
jhks = arrayList.get(i).get("JHKS");
}
if(arrayList.get(i).containsKey("JHJS")) {
jhjs = arrayList.get(i).get("JHJS");
}
}
System.out.println("sjwcsj========"+sjwcsj);
System.out.println("jhks========"+jhks);
System.out.println("jhjs========"+jhjs);
if(sjwcsj != null && !sjwcsj.isEmpty()) {
renderer.setBackground(Color.GREEN);
}else {
if(jhjs != null && !jhjs.isEmpty() && jhks != null && !jhks.isEmpty()) {
if(isNotAfterCurrentDate(jhjs)) {
renderer.setBackground(Color.RED);
System.out.println("row==="+row+"===column==="+column);
}else {
//setBackground(Color.YELLOW);
renderer.setBackground(Color.YELLOW);
}
}
}
}
}
return renderer;
}
public static boolean isNotAfterCurrentDate(String dateStr) {
// 定义日期格式
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
try {
// 解析字符串为 LocalDate 对象
LocalDate inputDate = LocalDate.parse(dateStr, formatter);
// 获取当前日期
LocalDate currentDate = LocalDate.now();
// 比较两个日期
return !inputDate.isAfter(currentDate); // 返回 true 如果输入日期 <= 当前日期
} catch (DateTimeParseException e) {
// 处理解析异常
System.out.println("Invalid date format: " + e.getMessage());
return false; // 或者你也可以选择抛出异常,或者根据需求做其他处理
}
}
}

@ -0,0 +1,54 @@
package com.langtech.plm.bg;
import java.awt.Component;
import java.util.List;
import javax.swing.JCheckBox;
import javax.swing.JRadioButton;
import javax.swing.JTable;
import javax.swing.SwingConstants;
import javax.swing.event.ChangeEvent;
import javax.swing.event.EventListenerList;
import javax.swing.table.TableCellRenderer;
import com.teamcenter.rac.treetable.JTreeTable;
public class TableCellCheckboxRenderer extends JCheckBox implements
TableCellRenderer {
private List<Integer> processRows;
protected EventListenerList listenerList = new EventListenerList();
protected ChangeEvent changeEvent = new ChangeEvent(this);
//private TestTreeTableModel tableModel;
public List<Integer> getProcessRows() {
return processRows;
}
public void setProcessRows(List<Integer> processRows) {
this.processRows = processRows;
}
public TableCellCheckboxRenderer(final JTable table) {
}
public TableCellCheckboxRenderer(final JTreeTable table) {
}
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
// TODO Auto-generated method stub
this.setHorizontalAlignment(SwingConstants.CENTER);// ±íÍ·±êÇ©¾çÖÐ
// this.setBorderPainted(true);
if(value != null)
{
this.setSelected(value.toString().equals("1"));
}
else
{
this.setSelected(false);
}
return this;
}
}

@ -0,0 +1,71 @@
package com.langtech.plm.bg;
import java.awt.Color;
import java.awt.Component;
import java.util.HashMap;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableCellRenderer;
public class TableColorRender implements TableCellRenderer {
//
public static final DefaultTableCellRenderer DEFAULT_RENDERER = new DefaultTableCellRenderer();
//IntegerÁÐ String±êʶ ColorÑÕÉ«
public HashMap<Integer, HashMap<String, Color>> allForegroundInfos = new HashMap<Integer, HashMap<String, Color>>();
public HashMap<Integer, Integer> allFColorColumn = new HashMap<Integer, Integer>();
//IntegerÁÐ String±êʶ ColorÑÕÉ«
public HashMap<Integer, HashMap<String, Color>> allBackgroundInfos = new HashMap<Integer, HashMap<String, Color>>();
public HashMap<Integer, Integer> allBColorColumn = new HashMap<Integer, Integer>();
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
Component renderer = DEFAULT_RENDERER.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
if (value != null && value instanceof String) {
Color foreground = table.getForeground();
Color background = table.getBackground();
if (isSelected) {
background = new Color(10, 36, 106);
}
Boolean bSetFG = false;
Integer infoCol = allFColorColumn.get(column);
if (infoCol != null) {
HashMap<String, Color> fgc = allForegroundInfos.get(infoCol);
if (fgc != null) {
String infoValue = table.getValueAt(row, infoCol).toString();
Color color = fgc.get(infoValue);
if (color != null) {
foreground = color;
bSetFG = true;
}
}
}
Boolean bSetBG = false;
infoCol = allBColorColumn.get(column);
if (infoCol != null) {
HashMap<String, Color> bgc = allBackgroundInfos.get(infoCol);
if (bgc != null) {
String infoValue = table.getValueAt(row, infoCol).toString();
Color color = bgc.get(infoValue);
if (color != null) {
background = color;
bSetBG = true;
}
}
}
if (!bSetFG && !bSetBG && isSelected) {
foreground = Color.WHITE;
}
renderer.setForeground(foreground);
renderer.setBackground(background);
}
return renderer;
}
}

@ -40,7 +40,7 @@ public class TableCellCheckboxRenderer extends JCheckBox implements
// TODO Auto-generated method stub
this.setHorizontalAlignment(SwingConstants.CENTER);// 表头标签剧中
// this.setBorderPainted(true);
System.out.println("valuevaluevalue==="+value);
if(value != null)
{
this.setSelected(value.toString().equals("1"));

Loading…
Cancel
Save