package com.vci.client.omd.btm.ui; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextField; import javax.swing.table.DefaultTableModel; import javax.swing.table.JTableHeader; import org.jdesktop.swingx.JXTable; import org.jdesktop.swingx.decorator.HighlighterFactory; import com.vci.client.omd.btm.toOutside.Datacenter; public class RevisionSelectDialog extends JDialog{ /** * */ private static final long serialVersionUID = 3729287544312985366L; private JPanel northPanel, centerPanel, southPanel; private JButton btnOK, btnCancel; private JScrollPane scrollPane; private JXTable table; private DefaultTableModel tableModel; private String[] tableHeader = {"版本号规则"}; private final int rowHeight = 40; private final int headerHeight = 40; private String[] names; private String selectName = ""; private JLabel jla; public JTextField jt1; private JButton sel; public RevisionSelectDialog(){ initUI(); initTable(); addListener(); } private void initUI(){ this.setTitle("版本号规则"); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); this.setSize(screenSize.width/2, screenSize.height/2); this.setModal(true); this.setLocationRelativeTo(null); this.setResizable(false); this.setLayout(new BorderLayout()); //查询框和查询按钮 northPanel = new JPanel(); //生命周期模板名字列表 centerPanel = new JPanel(); //确定,取消按钮 southPanel = new JPanel(); this.add(northPanel, BorderLayout.NORTH); this.add(centerPanel, BorderLayout.CENTER); this.add(southPanel, BorderLayout.SOUTH); sel = new JButton("查询"); jt1 = new JTextField(20); jla = new JLabel("版本号规则"); northPanel.add(jla); northPanel.add(jt1); northPanel.add(sel); scrollPane = new JScrollPane(); centerPanel.setLayout(new BorderLayout()); centerPanel.add(scrollPane, BorderLayout.CENTER); tableModel = new DefaultTableModel(); tableModel.setColumnCount(tableHeader.length); tableModel.setColumnIdentifiers(tableHeader); table = new JXTable(tableModel); table.setHighlighters(HighlighterFactory.createSimpleStriping()); table.setHorizontalScrollEnabled(true); table.setSortable(false); table.setRowHeight(rowHeight); JTableHeader tableHeader = table.getTableHeader(); Dimension size = tableHeader.getPreferredSize(); size.height = headerHeight; tableHeader.setPreferredSize(size); scrollPane.setViewportView(table); btnOK = new JButton("确定"); btnCancel = new JButton("取消"); southPanel.add(btnOK); southPanel.add(btnCancel); } private void initTable(){ names = Datacenter.getInstance().getRevNames(); if(names == null){ return; } tableModel.setRowCount(names.length); table.setEditable(true); for(int i = 0; i < names.length; i++){ table.setValueAt(names[i], i, 0); } table.setEditable(false); } private void addListener(){ btnOK.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { int selectRow = table.getSelectedRow(); if(selectRow >= 0){ selectName = (String) table.getValueAt(selectRow, 0); } dispose(); } }); btnCancel.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { dispose(); } }); //add by caill start 2015.11.26 根据查询框中的关键字过滤数据 sel.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { // TODO Auto-generated method stub initTable2(); } }); } private void initTable2(){ names = Datacenter.getInstance().getRevNames(); if(names == null){ return; } String value = jt1.getText().trim(); ArrayList list = new ArrayList(); for(int i = 0; i < names.length; i++){ if(names[i].startsWith(value)){ list.add(names[i]); }else if(value.equals("")){ list.add(names[i]); } } tableModel.setRowCount(list.size()); //为tableModel设置行数,使行数等于过滤后数据的条数 table = new JXTable(tableModel); table.setEditable(true); for(int i = 0; i < list.size(); i++){ table.setValueAt(list.get(i), i, 0); } table.setEditable(true); } //add by caill end public String getSelectName(){ return selectName; } }