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