From 3952e9fd98dc55d9f6e15b371e7708170d09a1a6 Mon Sep 17 00:00:00 2001 From: lijh Date: Mon, 23 Dec 2024 17:55:04 +0800 Subject: [PATCH] 20241223 --- .../plm/bg/CheckHeaderCellRenderer.java | 72 ++++ src/com/langtech/plm/bg/QDRWDialog.java | 315 +++++++++++++----- .../langtech/plm/bg/QDRWTableColorRender.java | 93 ++++++ .../plm/bg/TableCellCheckboxRenderer.java | 54 +++ src/com/langtech/plm/bg/TableColorRender.java | 71 ++++ .../plm/mpart/TableCellCheckboxRenderer.java | 2 +- 6 files changed, 530 insertions(+), 77 deletions(-) create mode 100644 src/com/langtech/plm/bg/CheckHeaderCellRenderer.java create mode 100644 src/com/langtech/plm/bg/QDRWTableColorRender.java create mode 100644 src/com/langtech/plm/bg/TableCellCheckboxRenderer.java create mode 100644 src/com/langtech/plm/bg/TableColorRender.java 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"));