tablelistener.java

来自「全面实现ilog地功能,没有使用第三方lib.」· Java 代码 · 共 96 行

JAVA
96
字号
/* * This source code is part of TWaver 1.3.1 * * SERVA Software PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * Copyright 2000-2005 SERVA Software, Inc. All rights reserved. */package demo.table;

import java.awt.Dimension;
import java.util.Date;
import java.util.List;
import java.util.Vector;

import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

import twaver.table.TTable;
import twaver.table.TTableAdapter;
import twaver.table.TTableColumn;
import twaver.table.TTableModelEvent;

public class TableListener extends TTableAdapter {

	private JTextArea textArea;
	private TTable table;
	
	public TableListener(TTable table, JTextArea textArea){
		this.textArea = textArea;
		this.table = table;
	}
	public void rowSelectionChanged(List selectedRows, boolean isSelectionAdjusting) {
		textArea.append("\nisSelectionAdjusting:" + isSelectionAdjusting);
		for(int i=0; i<selectedRows.size(); i++){
			Vector rowData = (Vector)selectedRows.get(i);
			textArea.append(rowData.get(0) + " ");
		}
	}

	public boolean beforeCellValueChanged(Vector rowData, int columnIndex, Object oldValue, Object newValue) {	
		if(columnIndex == 9 && newValue instanceof Integer){
			if(((Integer)newValue).intValue() > 100){
				return false;
			}
		}
		return true;
	}
	
	public void rowClicked(int clickCount, Vector rowData, int columnIndex) {
		if(clickCount != 2){
			rowData.set(8, new Date());
			table.getTableModel().publishData();
			return;
		}
		JTextArea textArea = new JTextArea();
		
		StringBuffer sb = new StringBuffer();
        for(int i=0; i<rowData.size(); i++){
        	sb.append("row<" + i + ">=" + rowData.get(i) + "\n");
        }
        textArea.setText(sb.toString());
        
        JScrollPane scroll = new JScrollPane(textArea);
        scroll.setPreferredSize(new Dimension(400, 300));
        
        TTableColumn columnInfo = table.getTableModel().getPublishedColumn(columnIndex);
        JOptionPane.showMessageDialog(table, scroll, 
        		"<" + columnInfo.getDisplayName() + "> is double clicked", 
        		JOptionPane.INFORMATION_MESSAGE);
	}
	public void lockedChanged() {
		textArea.append("\ntable locked state:" + table.getTableModel().isLocked() + "");
	}

    public void tableDataChanged(TTableModelEvent e){
    	if(e.getType() == TTableModelEvent.UPDATE_CELL){
    		textArea.append("\noldValue=" + e.getOldValue() + " newValue=" + e.getNewValue());
    	}
    	else if(e.getType() == TTableModelEvent.ADD_ROW){
//    		textArea.append("\n add row:" + e.getRowData());
    	}
    	else if(e.getType() == TTableModelEvent.REMOVE_ROW){
    		textArea.append("\n remove row:" + e.getRowData());
    	}
    	else if(e.getType() == TTableModelEvent.CLEAR_TABLE){
    		textArea.append("\n clear table");
    	}
    	else if(e.getType() == TTableModelEvent.ADD_COLUMN){
    		textArea.append("\n add column:" + e.getTableColumn().getDisplayName());
    	}
    	else if(e.getType() == TTableModelEvent.REMOVE_COLUMN){
    		textArea.append("\n remove column:" + e.getTableColumn().getDisplayName());
    	}
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?