EAS_添加监听事件
1.文本控件监听(KDTextField)
例如有文本控件:
private KDTextField txtBillPackageNo;
对于文本监听器,不像其他控件可以直接 txtBillPackageNo.addxxxx来添加监听,我们可以通过不同的方法来实现,有以下几种
第一种:通过监听鼠标的操作来实现监听,再对应的方法中添加自己想要处理的事件
this.txtBillPackageNo.addMouseListener(new MouseListener() { @Override public void mouseClicked(MouseEvent e) { //鼠标按键在组件上单击 (按下并释放) 时调用 } @Override public void mouseEntered(MouseEvent e) { transferDraftNumber(); //鼠标进入到组件上时调用 } @Override public void mouseExited(MouseEvent e) { transferDraftNumber(); //鼠标离开组件时调用 } @Override public void mousePressed(MouseEvent e) { //鼠标按键在组件上按下时调用 } @Override public void mouseReleased(MouseEvent e) { //鼠标按钮在组件上释放时调用 } });
第二种:通过DocumentListener()监听器,addDocumentListener
是一个用于监听文档(document)变化的方法。它通常与文本编辑组件(如文本框、文本区域等)一起使用,并用于捕获文本的插入、删除和属性变化等事件。具体使用如下
import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; public class DocumentListenerExample { public static void main(String[] args) { KDTextField textField = new KDTextField(); textField.getDocument().addDocumentListener(new DocumentListener() { public void insertUpdate(DocumentEvent e) { // 处理文本插入事件 } public void removeUpdate(DocumentEvent e) { // 处理文本删除事件 } public void changedUpdate(DocumentEvent e) { // 处理文本属性变化事件 } }); } }
第三种,也可以用addFocusListener,addFocusListener
是一个用于监听组件焦点变化的方法。它可以用于捕获当用户在界面上选择或取消选择特定组件时的事件。
txtBillPackageNo.addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) { // 处理获取焦点事件 } @Override public void focusLost(FocusEvent e) { // 处理失去焦点事件 transferDraftNumber(); } });
2.分录(KDTable)编辑监听事件
对于分录单元格编辑事件,我们有多种方方法,可以监听整个表格,也可以监听单个单元格,具体如下
2.1监控整个分录表编辑
this.tblMain.addKDTEditListener(new KDTEditAdapter() { public void editStopping(KDTEditEvent e) { int colIndex = e.getColIndex(); int rowIndex = e.getRowIndex(); String changeValue = e.getValue() ==null?"":e.getValue().toString(); //票据包号改变处理 if (colIndex == 2){ String draftNumber = transferDraftNumber(changeValue,rowIndex,colIndex,1); ReceivableBillBatchInputUI.this.tblMain.getRow(rowIndex).getCell("draftNumber").setValue(draftNumber); } //票据包号改变处理 if (colIndex == 3){ String draftNumber = transferDraftNumber(changeValue,rowIndex,colIndex,2); ReceivableBillBatchInputUI.this.tblMain.getRow(rowIndex).getCell("draftNumber").setValue(draftNumber); } //出票人账号改变处理 if (e.getColIndex() == 8) { try { if ((e.getValue() instanceof CustomerCompanyBankInfo)) { CustomerCompanyBankInfo ccb = (CustomerCompanyBankInfo)e.getValue(); final int row = e.getRowIndex(); final String bankAccount = ccb.getBankAccount(); SwingUtilities.invokeLater(new Runnable(){ public void run(){ ReceivableBillBatchInputUI.this.tblMain.getRow(row).getCell("drawerAccount").setValue(bankAccount); } }); ReceivableBillBatchInputUI.this.tblMain.getRow(e.getRowIndex()).getCell("prmtdrawerBank").setValue(ccb.getBank()); EntityViewInfo view = new EntityViewInfo(); FilterInfo filter = new FilterInfo(); filter.getFilterItems().add(new FilterItemInfo("name", ccb.getBank() + "%", CompareType.LIKE)); view.setFilter(filter); BEBankCollection coll = BEBankFactory.getRemoteInstance().getBEBankCollection(view); if (coll.size() > 0) { ReceivableBillBatchInputUI.this.tblMain.getRow(e.getRowIndex()).getCell("drawerBankNum").setValue(coll.get(0).getNumber()); } else { ReceivableBillBatchInputUI.this.tblMain.getRow(e.getRowIndex()).getCell("drawerBankNum").setValue(null); } } else if ((e.getValue() instanceof SupplierCompanyBankInfo)){ SupplierCompanyBankInfo scb = (SupplierCompanyBankInfo)e.getValue(); final int row = e.getRowIndex(); final String bankAccount = scb.getBankAccount(); SwingUtilities.invokeLater(new Runnable(){ public void run(){ ReceivableBillBatchInputUI.this.tblMain.getRow(row).getCell("drawerAccount").setValue(bankAccount); } }); ReceivableBillBatchInputUI.this.tblMain.getRow(e.getRowIndex()).getCell("prmtdrawerBank").setValue(scb.getBank()); EntityViewInfo view = new EntityViewInfo(); FilterInfo filter = new FilterInfo(); filter.getFilterItems().add(new FilterItemInfo("name", scb.getBank() + "%", CompareType.LIKE)); view.setFilter(filter); BEBankCollection coll = BEBankFactory.getRemoteInstance().getBEBankCollection(view); if (coll.size() > 0) { ReceivableBillBatchInputUI.this.tblMain.getRow(e.getRowIndex()).getCell("drawerBankNum").setValue(coll.get(0).getNumber()); } else { ReceivableBillBatchInputUI.this.tblMain.getRow(e.getRowIndex()).getCell("drawerBankNum").setValue(null); } } else if ((e.getValue() instanceof AccountBankInfo)){ AccountBankInfo acctbank = (AccountBankInfo)e.getValue(); final int row = e.getRowIndex(); final String bankAccount = acctbank.getBankAccountNumber(); SwingUtilities.invokeLater(new Runnable(){ public void run(){ ReceivableBillBatchInputUI.this.tblMain.getRow(row).getCell("drawerAccount").setValue(bankAccount); } }); ReceivableBillBatchInputUI.this.tblMain.getRow(e.getRowIndex()).getCell("prmtdrawerBank").setValue(acctbank.getBank()); if (acctbank.getBank().getAccountBank() == null){ BankInfo bankInfo = BankFactory.getRemoteInstance().getBankInfo(new ObjectUuidPK(acctbank.getBank().getId())); EntityViewInfo view = new EntityViewInfo(); FilterInfo filter = new FilterInfo(); String name = bankInfo.getName(); filter.getFilterItems().add(new FilterItemInfo("name", name + "%", CompareType.LIKE)); view.setFilter(filter); BEBankCollection coll = BEBankFactory.getRemoteInstance().getBEBankCollection(view); if (coll.size() > 0) { ReceivableBillBatchInputUI.this.tblMain.getRow(e.getRowIndex()).getCell("drawerBankNum").setValue(coll.get(0).getNumber()); } else { ReceivableBillBatchInputUI.this.tblMain.getRow(e.getRowIndex()).getCell("drawerBankNum").setValue(null); } } else { BEBankInfo beInfo = BEBankFactory.getRemoteInstance().getBEBankInfo(new ObjectUuidPK(acctbank.getBank().getAccountBank().getId())); ReceivableBillBatchInputUI.this.tblMain.getRow(e.getRowIndex()).getCell("drawerBankNum").setValue(beInfo.getNumber()); } } else if ((e.getValue() instanceof String)) { final int row = e.getRowIndex(); final String bankAccount = e.getValue().toString(); SwingUtilities.invokeLater(new Runnable(){ public void run(){ ReceivableBillBatchInputUI.this.tblMain.getRow(row).getCell("drawerAccount").setValue(bankAccount); } }); EntityViewInfo view = new EntityViewInfo(); FilterInfo filter = new FilterInfo(); filter.getFilterItems().add(new FilterItemInfo("name", e.getValue() + "%", CompareType.LIKE)); view.setFilter(filter); BEBankCollection coll = BEBankFactory.getRemoteInstance().getBEBankCollection(view); if (coll.size() > 0) { ReceivableBillBatchInputUI.this.tblMain.getRow(e.getRowIndex()).getCell("prmtdrawerBank").setValue(coll.get(0).getName()); ReceivableBillBatchInputUI.this.tblMain.getRow(e.getRowIndex()).getCell("drawerBankNum").setValue(coll.get(0).getNumber()); }else{ ReceivableBillBatchInputUI.this.tblMain.getRow(e.getRowIndex()).getCell("prmtdrawerBank").setValue(null); ReceivableBillBatchInputUI.this.tblMain.getRow(e.getRowIndex()).getCell("drawerBankNum").setValue(null); } } else{ ReceivableBillBatchInputUI.this.tblMain.getRow(e.getRowIndex()).getCell("prmtdrawerBank").setValue(null); ReceivableBillBatchInputUI.this.tblMain.getRow(e.getRowIndex()).getCell("drawerBankNum").setValue(null); } } catch (EASBizException e1) { e1.printStackTrace(); } catch (BOSException e2) { e2.printStackTrace(); } } super.editStopping(e); } });
第二种,监听单元格
linux下的docker操作命令及异常