diff --git a/src/com/langtech/plm/bg/CheckHeaderCellRenderer.java b/src/com/langtech/plm/bg/CheckHeaderCellRenderer.java
new file mode 100644
index 0000000..bdf28fa
--- /dev/null
+++ b/src/com/langtech/plm/bg/CheckHeaderCellRenderer.java
@@ -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
gsPrefTopLine;
- private ArrayList colorList = new ArrayList();
+ private LinkedHashMap colorMap = new LinkedHashMap();
private LinkedHashMap gsPrefMap = new LinkedHashMap();
private LinkedHashMap fieldsMap = new LinkedHashMap();
private LinkedHashMap cfdjPref = new LinkedHashMap();
@@ -109,6 +110,10 @@ public class QDRWDialog extends JFrame implements ActionListener {
private String taskName;
private ArrayList canWriteColume = new ArrayList();
private ArrayList sqlField;
+ private QDRWTableColorRender QDRWTableColorRender;
+ LinkedHashMap>>> 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 valuesCollection = fieldsMap.values();
+ // 创建一个新的列表来保存所有的值
+ List valuesList = new ArrayList<>(valuesCollection);
+
+ // 在列表的第一个位置插入新的 String 值
+ valuesList.add(0, "");
+ // 如果需要,可以将列表转回集合
+ Collection 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 map : lovPositionMap.entrySet()) {
- JComboBox jComboBox = new JComboBox();
- 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 map : lovPositionMap.entrySet()) {
+// JComboBox jComboBox = new JComboBox();
+// 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>> linkedHashMap = valueMap.get(id);
+ for (Entry 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>>> valueMap = new LinkedHashMap>>>();
-
+ valueMap = new LinkedHashMap>>>();
+ //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>>();
}
-
ArrayList> tempList = new ArrayList>();
- for (int i = 0; i < sqlField.size(); i++) {
- LinkedHashMap fieldMap = new LinkedHashMap();
- 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 fieldMap = new LinkedHashMap();
+ 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>>> map : valueMap.entrySet()) {
ArrayList tableList = new ArrayList();
+ tableList.add("0");
for (Entry 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>>> valueMap;
+// public LinkedHashMap 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>> linkedHashMap = valueMap.get(id);
+// System.out.println("colorMap======"+colorMap.toString());
+// for (Entry 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> 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>> linkedHashMap,String xh) {
+ ArrayList> 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;
+ }
}
\ No newline at end of file
diff --git a/src/com/langtech/plm/bg/QDRWTableColorRender.java b/src/com/langtech/plm/bg/QDRWTableColorRender.java
new file mode 100644
index 0000000..5f4bb60
--- /dev/null
+++ b/src/com/langtech/plm/bg/QDRWTableColorRender.java
@@ -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>>> valueMap;
+ public LinkedHashMap 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>> linkedHashMap = valueMap.get(id);
+ System.out.println("colorMap======"+colorMap.toString());
+ for (Entry map : colorMap.entrySet()) {
+ Integer columnColor = map.getKey();
+ if(column == columnColor) {
+ System.out.println("columnColor========"+columnColor);
+ String prefValue = map.getValue();
+ String[] split = prefValue.split("\\.");
+ ArrayList> 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; // 或者你也可以选择抛出异常,或者根据需求做其他处理
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/com/langtech/plm/bg/TableCellCheckboxRenderer.java b/src/com/langtech/plm/bg/TableCellCheckboxRenderer.java
new file mode 100644
index 0000000..82b1faf
--- /dev/null
+++ b/src/com/langtech/plm/bg/TableCellCheckboxRenderer.java
@@ -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 processRows;
+ protected EventListenerList listenerList = new EventListenerList();
+ protected ChangeEvent changeEvent = new ChangeEvent(this);
+ //private TestTreeTableModel tableModel;
+
+ public List getProcessRows() {
+ return processRows;
+ }
+
+ public void setProcessRows(List 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;
+ }
+}
\ No newline at end of file
diff --git a/src/com/langtech/plm/bg/TableColorRender.java b/src/com/langtech/plm/bg/TableColorRender.java
new file mode 100644
index 0000000..3beea2d
--- /dev/null
+++ b/src/com/langtech/plm/bg/TableColorRender.java
@@ -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> allForegroundInfos = new HashMap>();
+ public HashMap allFColorColumn = new HashMap();
+
+ //Integer列 String标识 Color颜色
+ public HashMap> allBackgroundInfos = new HashMap>();
+ public HashMap allBColorColumn = new HashMap();
+
+ 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 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 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;
+ }
+}
\ No newline at end of file
diff --git a/src/com/langtech/plm/mpart/TableCellCheckboxRenderer.java b/src/com/langtech/plm/mpart/TableCellCheckboxRenderer.java
index ab0f89b..e7fbd7d 100644
--- a/src/com/langtech/plm/mpart/TableCellCheckboxRenderer.java
+++ b/src/com/langtech/plm/mpart/TableCellCheckboxRenderer.java
@@ -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"));