最新JTABLE add button 響應事件
class ButtonColumn extends AbstractCellEditor implements TableCellRenderer, TableCellEditor,ActionListener {
JButton renderButton;
JButton editButton;
String text;
AplTrading bcAplTrading;
String bcAcctType;
String bcInstrument;
BigDecimal bcOrderQty;
private int row;
private JTable table;
ButtonColumn() {
renderButton = new JButton();
editButton = new JButton();
editButton.setFocusPainted(false);
editButton.setFocusable(false);
editButton.addActionListener(this);
}
ButtonColumn(AplTrading aplTrading) {
renderButton = new JButton();
editButton = new JButton();
editButton.setFocusPainted(false);
editButton.setFocusable(false);
editButton.addActionListener(this);
bcAplTrading = aplTrading;
}
@Override
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus, int row,
int column) {
if (hasFocus) {
} else if (isSelected) {
} else {
}
renderButton.setText( (value ==null) ? "SELL" : value.toString() );
renderButton.setToolTipText( "SELL");
return renderButton;
}
@Override
public Component getTableCellEditorComponent(JTable table,
Object value, boolean isSelected, int row, int column) {
text = (value == null) ? "SELL" : value.toString();
//editButton.setText(text);
this.row = row;
this.table = table;
return editButton;
}
@Override
public Object getCellEditorValue() {
return null;
}
@Override
public void actionPerformed(ActionEvent arg0) {
this.fireEditingStopped();//立即终止此单元格的编辑状态,使表格模型可以自动更新
//dtm.removeRow(this.row);
bcAcctType = (String) table.getModel().getValueAt(row, 10);
bcInstrument = (String) table.getModel().getValueAt(row, 1);
bcOrderQty = (BigDecimal) table.getModel().getValueAt(row, 5);
AplApplicationBase aplApplicationBase = new AplApplicationBase();
PnlPlaceOrder pnlPlaceOrder = new PnlPlaceOrder(aplApplicationBase);
pnlPlaceOrder.setBorder(BorderFactory.createTitledBorder(aplApplicationBase.getMessageSource().getValue("PnlPlaceOrder.border.title")));
pnlPlaceOrder.getLblPlaceOrderAccountNo().setText(aplApplicationBase.getMessageSource().getValue("PnlPlaceOrder.lblPlaceOrderAccountNo.text"));
pnlPlaceOrder.getLblPlaceOrderAcctType().setText(aplApplicationBase.getMessageSource().getValue("PnlPlaceOrder.lblPlaceOrderAcctType.text"));
pnlPlaceOrder.getLblPlaceOrderOrderType().setText(aplApplicationBase.getMessageSource().getValue("PnlPlaceOrder.lblPlaceOrderOrderType.text"));
pnlPlaceOrder.getLblPlaceOrderOrderValidity().setText(aplApplicationBase.getMessageSource().getValue("PnlPlaceOrder.lblPlaceOrderOrderValidity.text"));
pnlPlaceOrder.getLblPlaceOrderInstrument().setText(aplApplicationBase.getMessageSource().getValue("PnlPlaceOrder.lblPlaceOrderInstrument.text"));
pnlPlaceOrder.getLblPlaceOrderQty().setText(aplApplicationBase.getMessageSource().getValue("PnlPlaceOrder.lblPlaceOrderQty.text"));
pnlPlaceOrder.getLblPlaceOrderPrice().setText(aplApplicationBase.getMessageSource().getValue("PnlPlaceOrder.lblPlaceOrderPrice.text"));
pnlPlaceOrder.getLblPlaceOrderTradingPIN().setText(aplApplicationBase.getMessageSource().getValue("PnlPlaceOrder.lblPlaceOrderTradingPIN.text"));
pnlPlaceOrder.getLblPlaceOrderSaveTP().setText(aplApplicationBase.getMessageSource().getValue("PnlPlaceOrder.lblPlaceOrderSaveTP.text"));
pnlPlaceOrder.getLblPlaceOrderLangDisplay().setText(aplApplicationBase.getMessageSource().getValue("PnlPlaceOrder.lblPlaceOrderLangDisplay.text"));
pnlPlaceOrder.getBtnPlaceOrderClear().setText(aplApplicationBase.getMessageSource().getValue("PnlPlaceOrder.btnPlaceOrderClear.text"));
pnlPlaceOrder.getBtnPlaceOrderCancel().setText(aplApplicationBase.getMessageSource().getValue("PnlPlaceOrder.btnPlaceOrderCancel.text"));
pnlPlaceOrder.getLblPlaceOrderResponseOrderNo().setText(aplApplicationBase.getMessageSource().getValue("PnlPlaceOrder.lblPlaceOrderResponseOrderNo.text"));
pnlPlaceOrder.getFmtPlaceOrderAccountNo().setValue(new BigDecimal(bcAplTrading.getAccountLoggedOn()));
// String acctType = (String) table.getModel().getValueAt(table.getSelectedRow(), ColumnNo.AccountType);
if (bcAcctType.equals("1")) {
pnlPlaceOrder.getCmbxPlaceOrderAcctType().setSelectedIndex(0);
} else if (bcAcctType.equals("2")) {
pnlPlaceOrder.getCmbxPlaceOrderAcctType().setSelectedIndex(1);
} else if (bcAcctType.equals("3")) {
pnlPlaceOrder.getCmbxPlaceOrderAcctType().setSelectedIndex(2);
}
pnlPlaceOrder.getCmbxPlaceOrderAcctType().setEnabled(false);
pnlPlaceOrder.getCmbxPlaceOrderAcctType().setFocusable(false);
pnlPlaceOrder.getBtnPlaceOrderBuy().setText(aplApplicationBase.getMessageSource().getValue("PnlPlaceOrder.btnPlaceOrderBuy.text"));
pnlPlaceOrder.getBtnPlaceOrderSell().setText(aplApplicationBase.getMessageSource().getValue("PnlPlaceOrder.btnPlaceOrderSell.text"));
pnlPlaceOrder.getFmtPlaceOrderInstrument().setValue(new BigDecimal(bcInstrument));
pnlPlaceOrder.getFmtPlaceOrderInstrument().setEditable(false);
pnlPlaceOrder.getFmtPlaceOrderInstrument().setFocusable(false);
pnlPlaceOrder.getFmtPlaceOrderQty().setValue(bcOrderQty);
if (bcAplTrading.isTradingPINSaved()) {
pnlPlaceOrder.getTxtPlaceOrderTradingPIN().setEnabled(false);
pnlPlaceOrder.getCmbxPlaceOrderSaveTP().setEnabled(false);
pnlPlaceOrder.getCmbxPlaceOrderSaveTP().setSelectedIndex(0);
} else {
pnlPlaceOrder.getTxtPlaceOrderTradingPIN().setEnabled(true);
pnlPlaceOrder.getCmbxPlaceOrderSaveTP().setEnabled(true);
pnlPlaceOrder.getCmbxPlaceOrderSaveTP().setSelectedIndex(1);
}
pnlPlaceOrder.getFmtPlaceOrderLangDisplay().setValue(aplApplicationBase.getLangDisplay());
pnlPlaceOrder.getBtnPlaceOrderClear().setVisible(false);
UiGeneralHelper.showDialog(AplApplicationBase.getApplicationIconUrl(), AplApplicationBase.getApplicationTitle(aplApplicationBase), 300, 340, pnlPlaceOrder);
}