MiniTable 可單選/取消單選.

一、 有潛在BUG,需要等待時間才能看到效果
minitable.setMultiSelection(true);
//
minitable.getTableHeader().setReorderingAllowed(false);
minitable.getTableHeader().setResizingAllowed(false);

private int Index_Carton_ID;
private int m_CarRow1 = -1;
private int m_CarRow2 = -1;
//------------------------------methods
public void tableChanged(TableModelEvent e) {

	int row = 0;
	int col = 0;
	int editRow = 0;
	int editCol = e.getColumn();
	boolean isCartonsTable = (e.getSource().equals(minitable.getModel()));
	if (isCartonsTable) {
		row = minitable.getRowCount();
		col = minitable.getColumnCount();
		editRow = minitable.getEditingRow();
		if (editRow < 0 || editCol < 0) {
			return;
		}
	}

	// if minitable change and eiditing Column be zero.
	if(isCartonsTable && row > 0 && editCol == 0){
		TableModel tableModel = miniTable.getModel();

		// for minitable,Row set not selected. 
 		for (int i = 0; i < minitable.getRowCount(); i++) {
		((IDColumn) tableModel.getValueAt(i, Index_Carton_ID)).setSelected(false);
		} 
		// 
		IDColumn ids = (IDColumn) tableModel.getValueAt(editRow, Index_Carton_ID);
		if (m_CarRow1 == editRow && m_CarRow2 != editRow) {
		ids.setSelected(false);
		m_CarRow2 = editRow;
		} else {
		ids.setSelected(true);
		m_CarRow2 = -1;
		} 
	}
}


二、 使用Boolean類型爲第一列測試技術爲Compiere/ADempiere

效果根據Parameter Apanel 輸入的參數查詢Header Apanel 數據。

然後選擇 Header Apanel 中的一行 查詢出 Lines Apanel

且顯示出 所選擇的Header Apanel 數據的  Currency 、Payment Term、 Shipment Term.


package org.compiere.apps.form;

import java.awt.BorderLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.image.ColorModel;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;

import javax.swing.JScrollPane;
import javax.swing.border.TitledBorder;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.table.TableColumn;
import javax.swing.table.TableColumnModel;
import javax.swing.table.TableModel;

import org.compiere.apps.ConfirmPanel;
import org.compiere.apps.StatusBar;
import org.compiere.minigrid.IDColumn;
import org.compiere.minigrid.MiniTable;
import org.compiere.minigrid.MiniTableColor;
import org.compiere.plaf.CompiereColor;
import org.compiere.swing.CLabel;
import org.compiere.swing.CPanel;
import org.compiere.swing.CTextField;
import org.compiere.util.CLogger;
import org.compiere.util.DB;
import org.compiere.util.Env;
import org.compiere.util.KeyNamePair;
import org.compiere.util.Msg;
import org.compiere.util.Trx;

public class VCompletePO extends CPanel implements FormPanel, ActionListener, MouseListener {
	/**
	 * 
	 */
	private static final long serialVersionUID = -1875564139294965533L;

	/**
	 * Initialize Panel
	 * 
	 * @param WindowNo
	 *            window
	 * @param frame
	 *            frame
	 */
	public void init(int WindowNo, FormFrame frame) {
		log.info("");
		m_WindowNo = WindowNo;
		m_frame = frame;
		AD_Form_ID = m_frame.getAD_Form_ID();
		m_frame.setLocation(50, 50);
		try {
			fillPicks();
			jbInit();
			dynInit();
			frame.getContentPane().add(mainPanel, BorderLayout.CENTER);
			frame.getContentPane().add(statusBar, BorderLayout.SOUTH);
		} catch (Exception ex) {
			log.log(Level.SEVERE, "init", ex);
		}

	} // init

	/** Window No */
	private int m_WindowNo = 0;
	/** FormFrame */
	private FormFrame m_frame;
	/** Form ID */
	private int AD_Form_ID = 0;
	private Trx trx = Trx.get(Trx.createTrxName("AL"), true);
	// -------------------------------------------------------------------------------------
	/** Logger */
	private static CLogger log = CLogger.getCLogger(VUpdateCPCByProduct.class);

	// -----------------------------------------------------------------------
	private CLabel lDocNo = new CLabel();
	private CTextField fDocNo = new CTextField();
	private CLabel lBPartner = new CLabel();
	private CTextField fBPartner = new CTextField();
	// -----------------------------------------------------------------------
	private CLabel lCurrency = new CLabel();
	private CTextField fCurrency = new CTextField();
	private CLabel lPayTerm = new CLabel();
	private CTextField fPayTerm = new CTextField();
	private CLabel lShipTerm = new CLabel();
	private CTextField fShipTerm = new CTextField();

	// ---------------------------------------------------------------------------------------
	private int INDEX_H_Boolean = 0;
	private int INDEX_H_DocNo = 1;
	private int INDEX_H_Currency = 2;
	private int INDEX_H_PayTerm = 3;
	private int INDEX_H_ShipTerm = 4;
	
	private int INDEX_L_ID = 0;
	private int INDEX_L_Line = 1;
	private int INDEX_L_Product = 2;
	private int INDEX_L_CPC = 3;
	private int INDEX_L_VPC = 4;
	

	// -----------------------------------------------------------------------
	private CPanel mainPanel = new CPanel();
	private BorderLayout mainPanelLayout = new BorderLayout();
	// North Panel
	private CPanel northPanel = new CPanel();
	private GridBagLayout northPanelLayout = new GridBagLayout();
	// Center Panel
	private CPanel centerPanel = new CPanel();
	private BorderLayout centerPanelLayout = new BorderLayout();
	// Center Panel --> Header Panel
	private JScrollPane headerPanel = new JScrollPane();
	private MiniTable HeaderTable = new MiniTable();
	// Center Panel --> Search Pable
	private CPanel searchPanel = new CPanel();
	private BorderLayout searchPanelLayout = new BorderLayout();
	// Search Panel --> Description Pable
	private CPanel descPanel = new CPanel();
	private GridBagLayout descPanelLayout = new GridBagLayout();
	// Search Panel --> Lines Panel
	private JScrollPane linesPanel = new JScrollPane();
	private MiniTableColor linesTable = new MiniTableColor();

	/** Delete Button */
	private ConfirmPanel confirmPanelSel = new ConfirmPanel(true, true, false,
			false, false, false, false);
	private StatusBar statusBar = new StatusBar();

	/**
	 * Static Init.
	 * 
	 * <pre>
	 *      selPanel (tabbed)
	 *          fOrg, fBPartner
	 *          scrollPane & miniTable
	 *      genPanel
	 *          info
	 * </pre>
	 * 
	 * @throws Exception
	 */
	void jbInit() throws Exception {
		CompiereColor.setBackground(this);
		// --------------------------------------------------------------------
		lDocNo.setLabelFor(fDocNo);
		lBPartner.setLabelFor(fBPartner);
		
		lCurrency.setLabelFor(fCurrency);
		lPayTerm.setLabelFor(fPayTerm);
		lShipTerm.setLabelFor(lShipTerm);

		mainPanel.setName("mainPanel");
		mainPanel.setLayout(mainPanelLayout);

		/** Main Panel --> Parameter Panel */
		mainPanel.add(northPanel, BorderLayout.NORTH);
		northPanel.setLayout(northPanelLayout);
		TitledBorder border = new TitledBorder(" Parameter ");
		northPanel.setBorder(border);
		// 0,0 --> 1,0
		northPanel.add(lDocNo, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0,
				GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(5,
						5, 5, 5), 0, 0));
		northPanel.add(fDocNo, new GridBagConstraints(1, 0, 1, 1, 0.0, 0.0,
				GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5,
						0, 5, 5), 0, 0));
		northPanel.add(lBPartner, new GridBagConstraints(2, 0, 1, 1, 0.0,
				0.0, GridBagConstraints.EAST, GridBagConstraints.NONE,
				new Insets(5, 5, 5, 5), 0, 0));
		northPanel.add(fBPartner, new GridBagConstraints(3, 0, 1, 1, 0.0,
				0.0, GridBagConstraints.WEST, GridBagConstraints.NONE,
				new Insets(5, 0, 5, 5), 0, 0));
		
		/** Main Panel --> Center Panel */
		mainPanel.add(centerPanel, BorderLayout.CENTER);
		centerPanel.setLayout(centerPanelLayout);
		
		/** Center Panel --> Header Panel */
		centerPanel.add(headerPanel, BorderLayout.WEST);
		border = new TitledBorder(" Header ");
		headerPanel.setBorder(border);
		headerPanel.getViewport().add(HeaderTable, null);
		
		/** Center Panel --> Search Panel */
		centerPanel.add(searchPanel, BorderLayout.EAST);
		searchPanel.setLayout(searchPanelLayout);
		
		/** Search Panel --> Description Panel */
		searchPanel.add(descPanel, BorderLayout.NORTH);
		descPanel.setLayout(descPanelLayout);
		border = new TitledBorder(" Description ");
		descPanel.setBorder(border);
		// 0,0 --> 3,0
		descPanel.add(lCurrency, new GridBagConstraints(0, 0, 1, 1, 0.0,
				0.0, GridBagConstraints.EAST, GridBagConstraints.NONE,
				new Insets(5, 5, 5, 5), 0, 0));
		descPanel.add(fCurrency, new GridBagConstraints(1, 0, 1, 1, 0.0,
				0.0, GridBagConstraints.WEST, GridBagConstraints.NONE,
				new Insets(5, 0, 5, 5), 0, 0));
		descPanel.add(lPayTerm, new GridBagConstraints(2, 0, 1, 1, 0.0,
				0.0, GridBagConstraints.EAST, GridBagConstraints.NONE,
				new Insets(5, 5, 5, 5), 0, 0));
		descPanel.add(fPayTerm, new GridBagConstraints(3, 0, 1, 1, 0.0,
				0.0, GridBagConstraints.WEST, GridBagConstraints.NONE,
				new Insets(5, 0, 5, 5), 0, 0));
		// 0,1 --> 3,1
		descPanel.add(lShipTerm, new GridBagConstraints(0, 1, 1, 1, 0.0,
				0.0, GridBagConstraints.EAST, GridBagConstraints.NONE,
				new Insets(5, 5, 5, 5), 0, 0));
		descPanel.add(fShipTerm, new GridBagConstraints(1, 1, 1, 1, 0.0,
				0.0, GridBagConstraints.WEST, GridBagConstraints.NONE,
				new Insets(5, 0, 5, 5), 0, 0));
		/** Search Panel --> Lines Panel */
		searchPanel.add(linesPanel, BorderLayout.CENTER);
		border = new TitledBorder(" Lines ");
		linesPanel.setBorder(border);
		linesPanel.getViewport().add(linesTable, null);

		// ---------------------- Main Panel --> South Panel
		// ----------------------
		mainPanel.add(confirmPanelSel, BorderLayout.SOUTH);
		confirmPanelSel.addActionListener(this);

	} // jbInit

	/**
	 * Fill Picks.
	 * 
	 * @throws Exception
	 *             if Lookups cannot be initialized
	 */
	private void fillPicks() throws Exception {

		//
		lDocNo.setText(Msg.translate(Env.getCtx(), "DocumentNo"));
		fDocNo.setName("DocNo Field");
		fDocNo.setColumns(15);

		//
		lBPartner.setText("BPartner Value");
		fBPartner.setName("BPartner Field");
		fBPartner.setColumns(15);

		//
		lCurrency.setText(Msg.translate(Env.getCtx(), "C_Currency_ID"));
		fCurrency.setName("Currency Field");
		fCurrency.setColumns(15);
		fCurrency.setReadWrite(false);
		
		//
		lPayTerm.setText(Msg.translate(Env.getCtx(), "C_PaymentTerm_ID"));
		fPayTerm.setName("PayTerm Field");
		fPayTerm.setColumns(15);
		fPayTerm.setReadWrite(false);
		
		//
		lShipTerm.setText(Msg.translate(Env.getCtx(), "KF_ShipTerm_ID"));
		fShipTerm.setName("ShipTerm Field");
		fShipTerm.setColumns(15);
		fShipTerm.setReadWrite(false);

	} // fillPicks

	/**
	 * Dynamic Init. - Create GridController & Panel - AD_Column_ID from C_Order
	 */
	private void dynInit() {
		// create Columns
		HeaderTable.addColumn("IDNumber");
		HeaderTable.addColumn(Msg.translate(Env.getCtx(), "DocumentNo"));
		HeaderTable.addColumn("");
		HeaderTable.addColumn("");
		HeaderTable.addColumn("");
		//
		//HeaderTable.setMultiSelection(true);
		//HeaderTable.setRowSelectionAllowed(true);
		// set details
		HeaderTable.setColumnClass(INDEX_H_Boolean, Boolean.class, true, " ");
		HeaderTable.setColumnClass(INDEX_H_DocNo, KeyNamePair.class, true, Msg
				.translate(Env.getCtx(), "DocumentNo"));
		HeaderTable.setColumnClass(INDEX_H_Currency, KeyNamePair.class, true, "");
		HeaderTable.setColumnClass(INDEX_H_PayTerm, KeyNamePair.class, true, "");
		HeaderTable.setColumnClass(INDEX_H_ShipTerm, KeyNamePair.class, true, "");

		HeaderTable.autoSize();
		//HeaderTable.getModel().addTableModelListener(this);
		HeaderTable.addMouseListener(this);
		HeaderTable.getTableHeader().setReorderingAllowed(false);
		
		HeaderTable.getTableHeader().getColumnModel().getColumn(INDEX_H_Currency).setMaxWidth(0);
		HeaderTable.getTableHeader().getColumnModel().getColumn(INDEX_H_Currency).setMinWidth(0);
		TableColumnModel cm = HeaderTable.getColumnModel();
		TableColumn tc = cm.getColumn(INDEX_H_Currency);
		tc.setMaxWidth(0);
		tc.setPreferredWidth(0);
		tc.setWidth(0);
		tc.setMinWidth(0);
		
		HeaderTable.getTableHeader().getColumnModel().getColumn(INDEX_H_PayTerm).setMaxWidth(0);
		HeaderTable.getTableHeader().getColumnModel().getColumn(INDEX_H_PayTerm).setMinWidth(0);
		tc = cm.getColumn(INDEX_H_PayTerm);
		tc.setMaxWidth(0);
		tc.setPreferredWidth(0);
		tc.setWidth(0);
		tc.setMinWidth(0);
		
		HeaderTable.getTableHeader().getColumnModel().getColumn(INDEX_H_ShipTerm).setMaxWidth(0);
		HeaderTable.getTableHeader().getColumnModel().getColumn(INDEX_H_ShipTerm).setMinWidth(0);
		tc = cm.getColumn(INDEX_H_ShipTerm);
		tc.setMaxWidth(0);
		tc.setPreferredWidth(0);
		tc.setWidth(0);
		tc.setMinWidth(0);
		
		
		
		// create Columns
		linesTable.addColumn("IDNumber");
		linesTable.addColumn(Msg.translate(Env.getCtx(), "Line"));
		linesTable.addColumn(Msg.translate(Env.getCtx(), "M_Product_ID"));
		linesTable.addColumn(Msg.translate(Env.getCtx(), "KF_ProductCPC_ID"));
		linesTable.addColumn(Msg.translate(Env.getCtx(), "KF_ProductVPC_ID"));
		//
		//linesTable.setMultiSelection(true);
		//linesTable.setRowSelectionAllowed(true);
		// set details
		linesTable.setColumnClass(INDEX_L_ID, IDColumn.class, false, " ");
		linesTable.setColumnClass(INDEX_L_Line, KeyNamePair.class, true, Msg
				.translate(Env.getCtx(), "Line"));
		linesTable.setColumnClass(INDEX_L_Product, KeyNamePair.class, true, Msg
				.translate(Env.getCtx(), "M_Product_ID"));
		linesTable.setColumnClass(INDEX_L_CPC, KeyNamePair.class, true, Msg
				.translate(Env.getCtx(), "KF_ProductCPC_ID"));
		linesTable.setColumnClass(INDEX_L_VPC, KeyNamePair.class, true, Msg
				.translate(Env.getCtx(), "KF_ProductVPC_ID"));

		linesTable.autoSize();
		linesTable.getTableHeader().setReorderingAllowed(false);

		// Info
		statusBar.setStatusLine("");// @@
		statusBar.setStatusDB(" ");
	} // dynInit

	/**
	 * Query Info
	 */
	private void showHeader() {
		log.info("");

		//
		HeaderTable.setRowCount(0);
		//
		StringBuffer sql = new StringBuffer(
				" Select o.C_Order_ID,o.DocumentNo,"
						+ " cur.C_Currency_ID,cur.Iso_Code,"
						+ " pt.C_PaymentTerm_ID,pt.name,"
						+ " st.KF_ShipTerm_ID,st.name"
						+ " From C_Order o"
						+ " Left Join C_BPartner bp on(bp.C_BPartner_ID = o.C_BPartner_ID)"
						+ " Left Join C_Currency cur on(cur.C_Currency_ID = o.C_Currency_ID)"
						+ " Left Join C_PaymentTerm pt on(pt.C_PaymentTerm_ID = o.C_PaymentTerm_ID)"
						+ " Left Join KF_ShipTerm st on(st.KF_ShipTerm_ID = o.KF_ShipTerm_ID)"
						+ " Where o.DocStatus in('DR','IP') and o.IsSOTrx = 'N'");

		if (fDocNo.getText().length() > 0)
			sql.append(" AND UPPER(o.DocumentNo) LIKE ?");
		if (fBPartner.getText().length() > 0)
			sql.append(" AND UPPER(bp.Value) LIKE ?");

		//
		sql.append("  ORDER BY O.DocumentNo");
		log.fine(sql.toString());

		// reset table
		int row = 0;
		linesTable.setRowCount(row);
		// Execute
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		try {
			pstmt = DB.prepareStatement(sql.toString(), trx.getTrxName());
			//
			int index = 1;
			if (fDocNo.getText().length() > 0)
				pstmt.setString(index++, getSQLText(fDocNo));
			if (fBPartner.getText().length() > 0)
				pstmt.setString(index++, getSQLText(fBPartner));
			//
			rs = pstmt.executeQuery();
			while (rs.next()) {
				// extend table
				HeaderTable.setRowCount(row + 1);
				// set values
				int C_Order_ID = rs.getInt(1);
				if(row == 0){
					m_C_Order_ID = C_Order_ID;
					alfer_SelRow = 0;
				}
				//HeaderTable.setValueAt(new IDColumn(C_Order_ID), row, INDEX_H_ID); //
				// DocumentNo -> KeyNamePair
				KeyNamePair knp = new KeyNamePair(C_Order_ID, rs.getString(2));
				HeaderTable.setValueAt(knp, row, INDEX_H_DocNo);
				//
				knp = new KeyNamePair(rs.getInt(3), rs.getString(4));
				HeaderTable.setValueAt(knp, row, INDEX_H_Currency);
				//
				knp = new KeyNamePair(rs.getInt(5), rs.getString(6));
				HeaderTable.setValueAt(knp, row, INDEX_H_PayTerm);
				//
				knp = new KeyNamePair(rs.getInt(7), rs.getString(8));
				HeaderTable.setValueAt(knp, row, INDEX_H_ShipTerm);
				
				
				// prepare next
				row++;
			}
			rs.close();
			pstmt.close();
		} catch (SQLException e) {
			System.out.println(e);
			log.log(Level.SEVERE, sql.toString(), e);
		} finally {
			try {
				if (rs != null)
					rs.close();
				if (pstmt != null)
					pstmt.close();
			} catch (SQLException e) {
			}
		}
		pstmt = null;
		rs = null;
		//
		HeaderTable.autoSize();
		
		if(HeaderTable.getRowCount() > 0) {
			executeQuery();
		}
	} // showHeader
	
	/**
	 * Query Info
	 */
	private void executeQuery() {
		log.info("");

		//
		HeaderTable.setValueAt(true, alfer_SelRow, 0);
		//
		StringBuffer sql = new StringBuffer(
				" Select ol.C_OrderLine_ID,ol.Line,prd.M_Product_ID,prd.Value,"
						+ " cpc.KF_ProductCPC_ID,cpc.Name,"
						+ " vpc.KF_ProductvPC_ID,vpc.Name"
						+ " From C_OrderLine ol"
						+ " Left Join M_Product prd on(prd.M_Product_ID = ol.M_Product_ID)"
						+ " Left Join KF_ProductCPC cpc on(cpc.KF_ProductCPC_ID = ol.kf_cpc)"
						+ " Left Join KF_ProductVPC vpc on(vpc.KF_ProductVPC_ID = ol.kf_vpc)"
						+ " Left Join C_Currency cur on(cur.C_Currency_ID = ol.C_Currency_ID)"
						+ " Where  ol.C_Order_ID = ?");

		//
		sql.append("  ORDER BY ol.Line");
		log.fine(sql.toString());

		// reset table
		int row = 0;
		linesTable.setRowCount(row);
		// Execute
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		try {
			pstmt = DB.prepareStatement(sql.toString(), trx.getTrxName());
			pstmt.setInt(1, m_C_Order_ID);
			rs = pstmt.executeQuery();
			while (rs.next()) {
				// extend table
				linesTable.setRowCount(row + 1);
				// set values
				int c_OrderLine_ID = rs.getInt(1);
				linesTable.setValueAt(new IDColumn(c_OrderLine_ID), row, 0); //
				// Line
				linesTable.setValueAt(rs.getInt(2), row, 1);
				// Product Value -> KeyNamePair
				KeyNamePair knp = new KeyNamePair(rs.getInt(3), rs.getString(4));
				linesTable.setValueAt(knp, row, 2);
				// CPC -> KeyNamePair
				knp = new KeyNamePair(rs.getInt(5), rs.getString(6));
				linesTable.setValueAt(knp, row, 3);
				// VPC -> KeyNamePair
				knp = new KeyNamePair(rs.getInt(7), rs.getString(8));
				linesTable.setValueAt(knp, row, 4);
				
				// prepare next
				row++;
			}
			rs.close();
			pstmt.close();
		} catch (SQLException e) {
			System.out.println(e);
			log.log(Level.SEVERE, sql.toString(), e);
		} finally {
			try {
				if (rs != null)
					rs.close();
				if (pstmt != null)
					pstmt.close();
			} catch (SQLException e) {
			}
		}
		pstmt = null;
		rs = null;
		//
		linesTable.autoSize();
	} // executeQuery

	/**
	 * Dispose
	 */
	public void dispose() {
		if (m_frame != null)
			m_frame.dispose();
		m_frame = null;
		// trx.close();
	} // dispose
	
	/**
	 * Get SQL WHERE parameter
	 * 
	 * @param f
	 *            field
	 * @return sql
	 */
	private String getSQLText(CTextField f) {
		String s = f.getText().toUpperCase();
		//if (!s.endsWith("%"))
		//	s += "%";
		log.fine("String=" + s);
		return s;
	} // getSQLText
	

	public void actionPerformed(ActionEvent e) {
		log.info("Cmd=" + e.getActionCommand());
		log.fine("actionPerformed e ============= " + e.getActionCommand());
		//
		if (e.getActionCommand().equals(ConfirmPanel.A_CANCEL)) {
			// Env.setContext(Env.getCtx(), "trxName", "");
			dispose();
			return;
		}

		if (e.getActionCommand().equals(ConfirmPanel.A_REFRESH)) {
			// miniTable.editingStopped(new ChangeEvent(this));
			showHeader();
			return;
		}

	}

	
	private int m_C_Order_ID = 0;
	private int alfer_SelRow = -1;
	public void mouseClicked(MouseEvent e) {
		if (e.getClickCount() > 0 && HeaderTable.getSelectedRow() != -1)
		{
			//
			HeaderTable.setValueAt(false, alfer_SelRow, 0);
			//
			int editRow = HeaderTable.getSelectedRow();
			Object data = HeaderTable.getModel().getValueAt(editRow, INDEX_H_DocNo);
			if (data instanceof KeyNamePair)
				m_C_Order_ID = ((KeyNamePair)data).getKey();
			
			KeyNamePair knp = null;
        	Object value = HeaderTable.getValueAt(editRow, INDEX_H_Currency);
        	if(value != null){
        		knp = (KeyNamePair)value;
        		fCurrency.setValue(knp.getName());
        	}
        	value = HeaderTable.getValueAt(editRow, INDEX_H_PayTerm);
        	if(value != null){
        		knp = (KeyNamePair)value;
        		fCurrency.setValue(knp.getName());
        	}
        	value = HeaderTable.getValueAt(editRow, INDEX_H_ShipTerm);
        	if(value != null){
        		knp = (KeyNamePair)value;
        		fCurrency.setValue(knp.getName());
        	}
        	//
        	alfer_SelRow = editRow;
        	//
        	executeQuery();
		}
		
	}

	public void mouseEntered(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}

	public void mouseExited(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}

	public void mousePressed(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}

	public void mouseReleased(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}

}


</pre></p><p><pre name="code" class="java">



發佈了2 篇原創文章 · 獲贊 4 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章