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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in new issue