demo学习

//判断选中界面下拉框数据是否存在,存在就添加到并选中

private void bindDeclarant(DecHeadEdi decHead) {
if (decHead.getDeclarantCode() != null && decHead.getDeclarantName() != null) {
ItemProperty ip = new ItemProperty(decHead.getDeclarantCode(), decHead.getDeclarantName());
List<Declarant> list = this.decParamLogic.findDeclarants(request);
boolean exists = false;
if (list != null && !list.isEmpty()) {
String selectKey = decHead.getDeclarantCode() + "/" + decHead.getDeclarantName();
for (Declarant declarant : list) {
String key = declarant.getCode() + "/" + declarant.getName();
if (StringUtils.equals(selectKey, key)) {
exists = true;
break;
}
}
}
if (!exists) {
this.cbbDeclarant.addItem(ip);
}
this.cbbDeclarant.setSelectedItem(ip);
}
}

保存下拉框code并显示数据

private void initDeclarant() {
List<Declarant> list = this.decParamLogic.findDeclarants(request);
List<ItemProperty> propertys = new ArrayList();
if (list != null) {
for (Declarant declarant : list) {
propertys.add(new ItemProperty(declarant.getCode(), declarant.getName()));
}
}
cbbDeclarant.setModel(new DefaultComboBoxModel(propertys.toArray()));

this.cbbDeclarant.setConvert(new ItemPropertyValueConvert(new DefaultComboBoxModel(propertys.toArray())));
}

放大镜维护方法

private void qfDeclarantActionPerformed(java.awt.event.ActionEvent evt) {
DgEditDeclarant dg = new DgEditDeclarant();
dg.setVisible(true);
if (dg.getIsOk()) {
Declarant declarant = dg.getSelectData();
if (declarant != null) {
initDeclarant();
ItemProperty it = new ItemProperty(declarant.getCode(), declarant.getName());
cbbDeclarant.setSelectedItem(it);
}
} else {
initDeclarant();
}
}

//装载窗体代码

public class DgEditDeclarant extends JDialogBase {

private PnDeclarant pnDeclarant;
private Boolean isOk = false;
private Declarant selectData;

/**
* Creates new form NewJDialog
*/
public DgEditDeclarant() {
initComponents();
pnDeclarant = new PnDeclarant();
addButton();
this.add(pnDeclarant, java.awt.BorderLayout.CENTER);
}

@Override
public void setVisible(boolean b) {
if (b) {
pnDeclarant.getTable().addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
int count = e.getClickCount();
selectData = (Declarant) pnDeclarant.getTableModel().getCheckedRow();
if (count == 2 && e.getButton() == MouseEvent.BUTTON1 && selectData != null) {
isOk = true;
dispose();
System.out.println("-----------------");
}
}
});
super.setVisible(b); //To change body of generated methods, choose Tools | Templates.
}
}

// private void tableMouseClicked(java.awt.event.MouseEvent evt) {
// selectData = (Declarant) pnDeclarant.getTableModel().getCheckedRow();
// if (evt.getClickCount() == 2 && selectData != null) {
// isOk = true;
// dispose();
// }
// }
private void addButton() {
JToolBar tb = pnDeclarant.getjToolBar1();
JBButton btn = new JBButton();
btn.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/bsw/esp/client/images/35_确定.png"))); // NOI18N
btn.setText("确定");
btn.setAuthorityID("");
btn.setBorderPainted(false);
btn.setFocusable(false);
btn.setHorizontalTextPosition(0);
btn.setIconTextGap(0);
btn.setVerticalTextPosition(3);
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
selectData = (Declarant) pnDeclarant.getTableModel().getCheckedRow();
if (selectData == null) {
JOptionPane.showMessageDialog(rootPane, "请选择数据");
return;
} else {
isOk = true;
dispose();
}
}
});
tb.add(btn);
}

/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {

setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setTitle("录入员选择");

setBounds(0, 0, 500, 373);
}// </editor-fold>//GEN-END:initComponents

public Boolean getIsOk() {
return isOk;
}

public void setIsOk(Boolean isOk) {
this.isOk = isOk;
}

public Declarant getSelectData() {
return selectData;
}

public void setSelectData(Declarant selectData) {
this.selectData = selectData;
}

// Variables declaration - do not modify//GEN-BEGIN:variables
// End of variables declaration//GEN-END:variables
}

 //pnDeclarant窗体实现

public class PnDeclarant extends JPanelEdit {

private JTableListModel tableModel;
private int dataStatus = DataStatus.BROWSE;
private Request request = CoreClientUtils.getRequest();
private final DecParamLogic decParamLogic = CoreClientUtils.getBean(DecParamLogic.class);
private Boolean isOk = true;

/**
* Creates new form PnDeclarant
*/
public PnDeclarant() {
initComponents();
loadData();
this.setStatus();
}

private JTableListModel initTableModel(List<Declarant> data) {
if (data == null) {
data = Collections.EMPTY_LIST;
}
tableModel = new JTableListModel(table, data, new JTableListModelAdapter() {
@Override
public List<JTableListColumn> initColumns() {
List<JTableListColumn> list = new ArrayList();
list.add(new JTableListColumn("", "", 20) {
@Override
protected void setParameters() {
this.setEditerType(TableCellEditerType.MULTI_CHECK);
}
});
list.add(new JTableListColumn("流水号", "serialNo", 50));
list.add(new JTableListColumn("报关员编号", "code", 120) {
@Override
public void setParameters() {
this.setExtendsProperty(StringColumnExtProperty.MAX_LENGTH, 18);
}
});
list.add(new JTableListColumn("报关员名称", "name", 80));
return list;
}

@Override
protected Class getModelEntityClass() {
return Declarant.class;
}

@Override
protected String getColumnPersistentId() {
return "";
}
});
tableModel.setTableEditColumns(new String[]{"code", "name"});
return tableModel;
}

private Declarant getNewDeclarant() {
Integer serialNo = this.decParamLogic.getDeclarantSerialNo(request);
if (serialNo == null || serialNo == 0) {
serialNo = 1;
} else {
serialNo += 1;
}
Declarant declarant = new Declarant();
declarant.setSerialNo(serialNo);
declarant = decParamLogic.saveDeclarant(request, declarant);
return declarant;
}

private void setStatus() {
this.tableModel.setAllowEdit(this.tableModel.getRowCount() > 0 && dataStatus == DataStatus.EDIT);
this.btnSave.setEnabled(tableModel.getRowCount() > 0 && dataStatus == DataStatus.EDIT);
this.btnDel.setEnabled(tableModel.getRowCount() > 0 && dataStatus == DataStatus.BROWSE);
this.btnEdit.setEnabled(tableModel.getRowCount() > 0 && dataStatus == DataStatus.BROWSE);
this.btnAdd.setEnabled(dataStatus == DataStatus.BROWSE);
this.btnCancel.setEnabled(dataStatus == DataStatus.EDIT && tableModel.getRowCount() > 0);
this.btnBrefsh.setEnabled(dataStatus == DataStatus.BROWSE);
}

private void loadData() {
initTableModel(this.decParamLogic.findDeclarants(request));
}

/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {

jToolBar1 = new javax.swing.JToolBar();
btnAdd = new com.bsw.client.component.JBButton();
btnEdit = new com.bsw.client.component.JBButton();
btnDel = new com.bsw.client.component.JBButton();
btnSave = new com.bsw.client.component.JBButton();
btnCancel = new com.bsw.client.component.JBButton();
btnBrefsh = new com.bsw.client.component.JBButton();
jPanel1 = new javax.swing.JPanel();
jScrollPane1 = new javax.swing.JScrollPane();
table = new javax.swing.JTable();

setLayout(new java.awt.BorderLayout());

jToolBar1.setBorder(null);
jToolBar1.setRollover(true);
jToolBar1.setBorderPainted(false);
jToolBar1.setOpaque(false);
jToolBar1.setPreferredSize(new java.awt.Dimension(100, 45));

btnAdd.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/bsw/esp/client/images/01_新增.png"))); // NOI18N
btnAdd.setBorderPainted(false);
btnAdd.setFocusable(false);
btnAdd.setHorizontalTextPosition(0);
btnAdd.setIconTextGap(0);
btnAdd.setOpaque(false);
btnAdd.setText("新增");
btnAdd.setVerticalTextPosition(3);
btnAdd.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnAddActionPerformed(evt);
}
});
jToolBar1.add(btnAdd);

btnEdit.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/bsw/esp/client/images/02_修改.png"))); // NOI18N
btnEdit.setBorderPainted(false);
btnEdit.setFocusable(false);
btnEdit.setHorizontalTextPosition(0);
btnEdit.setIconTextGap(0);
btnEdit.setOpaque(false);
btnEdit.setText("修改");
btnEdit.setVerticalTextPosition(3);
btnEdit.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnEditActionPerformed(evt);
}
});
jToolBar1.add(btnEdit);

btnDel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/bsw/esp/client/images/03_删除.png"))); // NOI18N
btnDel.setBorderPainted(false);
btnDel.setFocusable(false);
btnDel.setHorizontalTextPosition(0);
btnDel.setIconTextGap(0);
btnDel.setOpaque(false);
btnDel.setText("删除");
btnDel.setVerticalTextPosition(3);
btnDel.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnDelActionPerformed(evt);
}
});
jToolBar1.add(btnDel);

btnSave.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/bsw/esp/client/images/15_保存.png"))); // NOI18N
btnSave.setBorderPainted(false);
btnSave.setFocusable(false);
btnSave.setHorizontalTextPosition(0);
btnSave.setIconTextGap(0);
btnSave.setOpaque(false);
btnSave.setText("保存");
btnSave.setVerticalTextPosition(3);
btnSave.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnSaveActionPerformed(evt);
}
});
jToolBar1.add(btnSave);

btnCancel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/bsw/esp/client/images/36_取消.png"))); // NOI18N
btnCancel.setBorderPainted(false);
btnCancel.setFocusable(false);
btnCancel.setHorizontalTextPosition(0);
btnCancel.setIconTextGap(0);
btnCancel.setOpaque(false);
btnCancel.setText("取消");
btnCancel.setVerticalTextPosition(3);
btnCancel.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnCancelActionPerformed(evt);
}
});
jToolBar1.add(btnCancel);

btnBrefsh.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/bsw/esp/client/images/26_刷新.png"))); // NOI18N
btnBrefsh.setBorderPainted(false);
btnBrefsh.setFocusable(false);
btnBrefsh.setHorizontalTextPosition(0);
btnBrefsh.setIconTextGap(0);
btnBrefsh.setOpaque(false);
btnBrefsh.setText("刷新");
btnBrefsh.setVerticalTextPosition(3);
btnBrefsh.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnBrefshActionPerformed(evt);
}
});
jToolBar1.add(btnBrefsh);

add(jToolBar1, java.awt.BorderLayout.PAGE_START);

jPanel1.setLayout(new java.awt.BorderLayout());

table.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
jScrollPane1.setViewportView(table);

jPanel1.add(jScrollPane1, java.awt.BorderLayout.CENTER);

add(jPanel1, java.awt.BorderLayout.CENTER);
}// </editor-fold>

private void btnAddActionPerformed(java.awt.event.ActionEvent evt) {
Declarant declarant = getNewDeclarant();
this.tableModel.addRow(0, declarant);
this.dataStatus = DataStatus.EDIT;
this.setStatus();
}

private void btnEditActionPerformed(java.awt.event.ActionEvent evt) {
dataStatus = DataStatus.EDIT;
this.setStatus();
}

private void btnDelActionPerformed(java.awt.event.ActionEvent evt) {
List<Declarant> declarants = this.tableModel.getCheckedRows();
if (null == declarants || declarants.isEmpty()) {
JOptionPane.showMessageDialog(PnDeclarant.this, "请勾选要删除的内容!");
return;
}
if (JOptionPane.showConfirmDialog(PnDeclarant.this, "你确定要删除记录吗?", "确认", 0) == 0) {
this.decParamLogic.deleteDeclarants(request, declarants);
this.loadData();
dataStatus = DataStatus.BROWSE;
this.setStatus();
}
}

private void btnSaveActionPerformed(java.awt.event.ActionEvent evt) {
this.tableModel.commitEdited();
List<Declarant> declarants = this.tableModel.getModifiedData();
if (!checkData(declarants)) {
return;
}
declarants = this.decParamLogic.saveDeclarants(request, declarants);
this.decParamLogic.deleteNullRowData(request);
loadData();
this.dataStatus = DataStatus.BROWSE;
this.setStatus();

}

private Boolean checkData(List<Declarant> declarants) {
List<ErrorMessage> messages = new ArrayList();
Boolean isPass = true;
if (null != declarants && !declarants.isEmpty()) {
List<Declarant> list = decParamLogic.findDeclarants(CoreClientUtils.getRequest());
Map<String, Declarant> declarantMap = new HashMap();
Map<String, Declarant> selfMap = new HashMap();
if (null != list && !list.isEmpty()) {
for (Declarant declarant : list) {
declarantMap.put(declarant.getCode(), declarant);
}
}
for (Declarant d : declarants) {
int index = this.tableModel.getRowByData(d);
ErrorMessage message = new ErrorMessage();
String err = "";
if (StringUtils.isBlank(d.getCode())) {
err += "报关人员编号不能为空! ";
isPass = false;
}
if (StringUtils.isBlank(d.getName())) {
err += "报关人员名称不能为空! ";
isPass = false;
}

if (StringUtils.isNotBlank(d.getId()) && declarantMap.get(d.getCode()) != null && !declarantMap.get(d.getCode()).getId().equals(d.getId())) {
String errMsg = String.format("报关人员编码:【%s】在系统中已存在! ", d.getCode());
err += errMsg;
}
if (selfMap.get(d.getCode()) != null) {
String errMsg = String.format("报关人员编码:【%s】在当前表格中重复! ", d.getCode());
err += errMsg;
} else {
selfMap.put(d.getCode(), d);
}
if (StringUtils.isNotBlank(err)) {
message.setTitle("第" + (index + 1) + "行数据");
message.setMessage(removeStrFromString(err, " "));
messages.add(message);
}
}
if (!messages.isEmpty()) {
DgErrorMessage dg = new DgErrorMessage();
dg.setTitle("报关人员参数");
dg.setList(messages);
dg.setVisible(true);
isPass = false;
}
}
return isPass;
}

private String removeStrFromString(String orgString, String removeString) {
if (StringUtils.isNotBlank(orgString) && StringUtils.isNotEmpty(removeString)) {
if (orgString.contains(removeString)) {
return new String(orgString.substring(0, orgString.lastIndexOf(removeString)));
}
}
return orgString;
}

private void btnBrefshActionPerformed(java.awt.event.ActionEvent evt) {
this.loadData();
}

private void btnCancelActionPerformed(java.awt.event.ActionEvent evt) {
this.decParamLogic.deleteNullRowData(request);
loadData();
this.dataStatus = DataStatus.BROWSE;
this.setStatus();
}

@Override
public boolean isEdit() {
return false;
}

public JToolBar getjToolBar1() {
return jToolBar1;
}

public void setjToolBar1(JToolBar jToolBar1) {
this.jToolBar1 = jToolBar1;
}

public JTableListModel getTableModel() {
return tableModel;
}

public void setTableModel(JTableListModel tableModel) {
this.tableModel = tableModel;
}

public JTable getTable() {
return table;
}

public void setTable(JTable table) {
this.table = table;
}

// Variables declaration - do not modify
private com.bsw.client.component.JBButton btnAdd;
private com.bsw.client.component.JBButton btnBrefsh;
private com.bsw.client.component.JBButton btnCancel;
private com.bsw.client.component.JBButton btnDel;
private com.bsw.client.component.JBButton btnEdit;
private com.bsw.client.component.JBButton btnSave;
private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JToolBar jToolBar1;
private javax.swing.JTable table;
// End of variables declaration
}

原文地址:https://www.cnblogs.com/tiansan/p/7364073.html