You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
215 lines
6.5 KiB
215 lines
6.5 KiB
/*
|
|
#=======================================================================================================
|
|
#
|
|
# Copyright (c) 2007 Origin Enterprise Solution LTD.
|
|
#
|
|
#=======================================================================================================
|
|
# File description: test.java
|
|
#=======================================================================================================
|
|
# Date Name Action Description of Change
|
|
# 2010-1-6 tyl 修改
|
|
# 2010-4-25 zyn 修改 横向显示模式修改为纵向显示模式
|
|
#=======================================================================================================
|
|
*/
|
|
|
|
package com.connor.lidy.task.util;
|
|
|
|
import java.awt.BorderLayout;
|
|
import java.awt.Component;
|
|
import java.awt.Cursor;
|
|
import java.awt.Dimension;
|
|
import java.awt.GridLayout;
|
|
import java.awt.event.MouseAdapter;
|
|
import java.awt.event.MouseEvent;
|
|
import java.awt.event.MouseListener;
|
|
import java.util.Vector;
|
|
|
|
import javax.swing.JLabel;
|
|
import javax.swing.JPanel;
|
|
import javax.swing.JScrollPane;
|
|
import javax.swing.JSplitPane;
|
|
import javax.swing.JTable;
|
|
import javax.swing.JTextArea;
|
|
import javax.swing.event.ChangeEvent;
|
|
import javax.swing.event.ChangeListener;
|
|
import javax.swing.plaf.SplitPaneUI;
|
|
import javax.swing.plaf.basic.BasicSplitPaneUI;
|
|
import javax.swing.table.DefaultTableModel;
|
|
import javax.swing.table.TableCellRenderer;
|
|
import javax.swing.table.TableColumn;
|
|
import javax.swing.table.TableColumnModel;
|
|
|
|
//import components.TableDemo;
|
|
|
|
public class QueryTaskOpinionTableHead extends JPanel {
|
|
/**
|
|
* serialVersionUID:(描述变量的功能)
|
|
* @since Ver 1.1
|
|
*/
|
|
private static final long serialVersionUID = 1L;
|
|
private Object[][] objArray; // 表中的数据
|
|
private DefaultTableModel dm;
|
|
private JTable table;
|
|
private JTextArea textarea;
|
|
// private String[] headers = { "流程名称","序号", "任务" , "签审决定","执行人","提交时间","注释"};
|
|
private String[] headers = { "流程名称", "任务", "签审决定", "执行人", "开始时间", "完成时间", "注释" };
|
|
|
|
public QueryTaskOpinionTableHead() {
|
|
super(new GridLayout(1, 0));
|
|
}
|
|
|
|
// 设置组合表格标题
|
|
public void setTableHeadTestModel(Vector<String> titleArrayTemp) {
|
|
dm = new DefaultTableModel(objArray, headers);
|
|
table = new JTable(dm);
|
|
textarea = new JTextArea(15,35);
|
|
textarea.setAutoscrolls(true);
|
|
textarea.setLineWrap(true);
|
|
textarea.setEditable(false);
|
|
textarea.addMouseListener(new MouseAdapter() {
|
|
public void mouseEntered(MouseEvent mouseEvent) {
|
|
textarea.setCursor(new Cursor(Cursor.TEXT_CURSOR)); //鼠标进入Text区后变为文本输入指针
|
|
}
|
|
public void mouseExited(MouseEvent mouseEvent) {
|
|
textarea.setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); //鼠标离开Text区后恢复默认形态
|
|
}
|
|
});
|
|
textarea.getCaret().addChangeListener(new ChangeListener() {
|
|
public void stateChanged(ChangeEvent e) {
|
|
textarea.getCaret().setVisible(true); //使textarea区的文本光标显示
|
|
}
|
|
});
|
|
|
|
GroupableTableHeader header = new GroupableTableHeader(table.getColumnModel());
|
|
|
|
table.setTableHeader(header);
|
|
table.setPreferredScrollableViewportSize(new Dimension(820, 150));
|
|
addListener();
|
|
|
|
JScrollPane scrollPane = new JScrollPane(table);
|
|
|
|
JPanel jpane = new JPanel(new BorderLayout());
|
|
jpane.add(new JLabel("注释:"), BorderLayout.NORTH);
|
|
jpane.add(textarea, BorderLayout.CENTER);
|
|
|
|
JSplitPane splitPane = new JSplitPane();
|
|
splitPane.setOrientation(JSplitPane.HORIZONTAL_SPLIT);
|
|
splitPane.setLeftComponent(scrollPane);
|
|
splitPane.setRightComponent(jpane);
|
|
splitPane.setDividerLocation(0.6);
|
|
splitPane.setEnabled(false);
|
|
SplitPaneUI ui = splitPane.getUI();
|
|
if (ui instanceof BasicSplitPaneUI) {
|
|
((BasicSplitPaneUI) ui).getDivider().setBorder(null);//隐藏分割线
|
|
}
|
|
|
|
add(splitPane);
|
|
}
|
|
|
|
public void setobjArray(Object[][] objArrayTemp) {
|
|
objArray = objArrayTemp;
|
|
}
|
|
|
|
/*
|
|
* This method picks good column sizes. If all column heads are wider than
|
|
* the column's cells' contents, then you can just use
|
|
* column.sizeWidthToFit().
|
|
*/
|
|
public void initColumnSizes() {
|
|
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
|
|
// DefaultTableModel model = (DefaultTableModel) table.getModel();
|
|
TableColumn column = null;
|
|
Component comp = null;
|
|
int headerWidth = 0;
|
|
int cellWidth = 0;
|
|
TableCellRenderer headerRenderer = table.getTableHeader().getDefaultRenderer();
|
|
TableColumnModel colmode = table.getColumnModel();
|
|
int count = colmode.getColumnCount();
|
|
for (int i = 0; i < count; i++) {
|
|
column = table.getColumnModel().getColumn(i);
|
|
comp = headerRenderer.getTableCellRendererComponent(table, column.getHeaderValue(), false, false, 0, 0);
|
|
headerWidth = comp.getPreferredSize().width;
|
|
// if (i == 1) {
|
|
// cellWidth = 50;
|
|
// }else if (i == 2) {
|
|
// cellWidth = 50;
|
|
// }else if (i == 3) {
|
|
// cellWidth = 80;
|
|
// }else if (i == 4) {
|
|
// cellWidth = 100;
|
|
// }else {
|
|
// cellWidth = 130;
|
|
// }
|
|
if (i == 0) {
|
|
cellWidth = 180;
|
|
}else if (i == 1) {
|
|
cellWidth = 75;
|
|
}else if (i == 2) {
|
|
cellWidth = 75;
|
|
}else if (i == 3) {
|
|
cellWidth = 100;
|
|
}else {
|
|
cellWidth = 130;
|
|
}
|
|
column.setPreferredWidth(Math.max(headerWidth, cellWidth));
|
|
}
|
|
}
|
|
|
|
public String getUserChoose() {
|
|
String cellValue = null;
|
|
int selectRows = table.getSelectedRows().length;// 取得用户所选行的行数
|
|
if (selectRows == 1) {
|
|
int selectedRowIndex = table.getSelectedRow(); // 取得用户所选单行
|
|
cellValue = (String) table.getValueAt(selectedRowIndex, 6);
|
|
}
|
|
return cellValue;
|
|
}
|
|
|
|
/**
|
|
* 添加单击事件,获得注释信息
|
|
*/
|
|
public void addListener(){
|
|
table.addMouseListener(new MouseListener(){
|
|
|
|
public void mouseClicked(MouseEvent e) {
|
|
String userComments = getUserChoose();
|
|
String Comments = "";
|
|
if(userComments!=null){
|
|
int len = userComments.split("\t").length;
|
|
for(int i = 0;i<len;i++){
|
|
if(i!=len-1){
|
|
Comments = Comments +userComments.split("\t")[i]+"\n";
|
|
}else{
|
|
Comments = Comments +userComments.split("\t")[i];
|
|
}
|
|
}
|
|
textarea.setText(Comments);
|
|
}else{
|
|
textarea.setText("");
|
|
}
|
|
}
|
|
|
|
public void mouseEntered(MouseEvent e) {
|
|
// Auto-generated method stub
|
|
|
|
}
|
|
|
|
public void mouseExited(MouseEvent e) {
|
|
// Auto-generated method stub
|
|
|
|
}
|
|
|
|
public void mousePressed(MouseEvent e) {
|
|
// Auto-generated method stub
|
|
|
|
}
|
|
|
|
public void mouseReleased(MouseEvent e) {
|
|
// Auto-generated method stub
|
|
|
|
}
|
|
|
|
});
|
|
}
|
|
}
|