您的位置:首页 > 其它

Cisco路由器auto secure命令小结

2013-09-11 10:17 495 查看
1#区域中使用JTree显示项目分组的数据。2#区域中使用JTable显示项目的数据。3#区域中显示输入项和按钮。

private void build(){

JSplitPane jspan = new JSplitPane();
jspan.setDividerLocation(200);
jspan.setDividerSize(10);
jspan.setOrientation(JSplitPane.HORIZONTAL_SPLIT);
jspan.setOneTouchExpandable(true);

setLayout(new BorderLayout());
add(jspan);

MyTree myTree = new MyTree(MyTree.NOCHECK);
jtree = myTree.getXmfzJTree();

JScrollPane jscpan = new JScrollPane(jtree);

jspan.setLeftComponent(jscpan);

JPanel jpanRight = new JPanel(new BorderLayout());

jspan.setRightComponent(jpanRight);

// 创造JTable实例,JTable中的单元格不可编辑
jt = new JTable();
defaultModel = new DefaultTableModel(null, title){
public boolean isCellEditable(int row, int column){
return false;
}
};
jt.setAutoscrolls(true);
jt.setModel(defaultModel);
jt.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

// 隐藏JTable中的不显示的列
SwingUtils.hideTableColumn(jt, 0);
SwingUtils.hideTableColumn(jt, 1);

JPanel xmszPanel = new JPanel(new BorderLayout());
xmszPanel.setBorder(BorderFactory.createEtchedBorder());

// 添加JTable实例的标题
xmszPanel.add(jt.getTableHeader(),"North");

// 添加JTable实例
JScrollPane scrollPane = new JScrollPane(jt);
xmszPanel.add(scrollPane,"Center");

jpanRight.add(xmszPanel);

JPanel editP = this.createOperatJPanel();
editP.setBorder(BorderFactory.createEtchedBorder());

// 添加操作区面板
jpanRight.add(editP, "South");

jtree.addMouseListener(new MouseListener(){
public void mouseClicked(MouseEvent e) {
int row = jtree.getRowForLocation(e.getX(), e.getY());
if(row == -1) return;
DefaultMutableTreeNode treeNode = (DefaultMutableTreeNode)jtree.getLastSelectedPathComponent();
TreeNodeObject tno = (TreeNodeObject)treeNode.getUserObject();
if(e.getClickCount() == 1) {
jfzid.setText(tno.getNodeId());
}else if(e.getClickCount() == 2){
listXmszByFzid(tno.getNodeId());
}
}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
});
}
(1)创造JSplitPane实例jspan,左边放JTree,右上边放JTable,右下边放JPanel。JTable分标题和表体两块,分别放在Layout为BorderLayout的JPanel的North和Center方向。
(2)创造JTree的实例jtree。使用MyTree的实例方法getXmfzJTree创建jtree。
(3)创造DefaultTableModel的实例,传入参数null和title,null表示JTable的数据为空,title是JTable的标题,在方法isCellEditable中返回false,表示单元格不可编辑。调用SwingUtils的类方法hideTableColumn隐藏JTable的第0列和第1列。调用setBorder方法设置JPanel的边框样式为BorderFactory.createEtchedBorder()。
(4)JTree的单击与双击事件。调用jtree.getRowForLocation(e.getX(), e.getY())检查是否选择上了JTree的一行。调用jtree.getLastSelectedPathComponent()返回选择的树节点。调用treeNode.getUserObject()获得与树节点关联的TreeNodeObject对象。调用e.getClickCount()检查鼠标点击次数是1还是2,如果是1,表示单击,执行语句jfzid.setText(tno.getNodeId()),如果是2,表示双击,执行语句listXmszByFzid(tno.getNodeId())列出项目设置数据在JTable。

private JPanel createOperatJPanel() {

// 将输入项组件添加到JPanel
JPanel p1 = new JPanel(new FlowLayout(FlowLayout.LEFT));

jfzid = new JTextField(20);
p1.add(jfzid);
jfzid.setVisible(false);

jxmid = new JTextField(20);
p1.add(jxmid);
jxmid.setVisible(false);

jxmzq = new Jxsgs("xmzq", "项目周期");
p1.add(jxmzq);

jsjdw = new Jxsgs("sjdw", "数据单位");
p1.add(jsjdw);

// 将输入项组件添加到JPanel
JPanel p2 = new JPanel(new FlowLayout(FlowLayout.LEFT));

p2.add(new JLabel("项目名称"));
jxmmc = new JTextField(30);
p2.add(jxmmc);

JPanel p4 = new JPanel(new FlowLayout(FlowLayout.LEFT));

p4.add(new JLabel(" 小数位"));
jxsw = new JTextField(30);
p4.add(jxsw);

// 将功能按钮新增、保存、删除添加到JPanel
JPanel p3 = new JPanel(new FlowLayout(FlowLayout.LEFT));

addBtn = new JButton("新增");
p3.add(addBtn);

savBtn = new JButton("保存");
p3.add(savBtn);

delBtn = new JButton("删除");
p3.add(delBtn);

xmzyBtn = new JButton("项目转移");
p3.add(xmzyBtn);

// 按钮起初状态:增加可用、保存不可用、删除不可用
this.setButtonState(true, false, false, false);

// JTable实例点击事件处理
jt.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e) {
int ind = jt.rowAtPoint(e.getPoint());
if(ind == -1){return;}
Vector<String> v = (Vector<String>)defaultModel.getDataVector().get(ind);
vector2Comp(v);
setButtonState(true, true, true, true);
setNew(false);
}
});

// 增加按钮点击事件处理
addBtn.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
initEditItem();
setButtonState(true, false, true, false);
setNew(true);
jt.clearSelection();
}
});

// 删除按钮点击事件处理
delBtn.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
int ind = jt.getSelectedRow();
if(ind == -1){return;}
if(!SwingUtils.confirm("确定要删除选择的数据?")){return;}
String xmid = jt.getModel().getValueAt(ind, 1).toString();
// 判断项目下是否有数据
String url1 = mainFrame.BASEURL + "xmsz2Action.do?method=getXmszDataNum&xmid=" + xmid;
Integer num = (Integer)SwingUtils.request(url1);
if(num!=0){
SwingUtils.alert("该项目已经有数据,无法删除!");
return;
}
// 删除项目
String url2 = mainFrame.BASEURL + "xmsz2Action.do?method=deleteXmsz&xmid=" + xmid;
SwingUtils.request(url2, "");
defaultModel.removeRow(ind);
SwingUtils.fitTableColumns(jt);
initEditItem();
setButtonState(true, false, false, false);
setNew(false);
jt.clearSelection();
}
});

// 保存按钮点击事件处理
savBtn.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
if(!isValidate()){return;}
if(getNew()){
Xmsz xmsz = comp2Xmsz();
xmsz.setXmid(null);
String url = mainFrame.BASEURL + "xmsz2Action.do?method=saveXmsz";
xmsz = (Xmsz)SwingUtils.request(url, xmsz);
defaultModel.addRow(xmsz2Array(xmsz));
SwingUtils.fitTableColumns(jt);
}else{
Xmsz xmsz = comp2Xmsz();
String url = mainFrame.BASEURL + "xmsz2Action.do?method=saveXmsz";
xmsz = (Xmsz)SwingUtils.request(url, xmsz);
int sr = jt.getSelectedRow();
defaultModel.removeRow(sr);
defaultModel.insertRow(sr, xmsz2Array(xmsz));
SwingUtils.fitTableColumns(jt);
}
initEditItem();
setButtonState(true, false, false, false);
setNew(true);
jt.clearSelection();
}
});

xmzyBtn.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
List<TreeNodeObject> list = MyTree.openXmfzJDialog();
long fzid = Long.valueOf(list.get(0).getNodeId());
Xmsz xmsz = comp2Xmsz();
if(fzid==xmsz.getFzid()){
SwingUtils.alert("项目转移成功。");
return;
}
xmsz.setFzid(fzid);
String url = mainFrame.BASEURL + "xmsz2Action.do?method=saveXmsz";
SwingUtils.request(url, xmsz);
int ind = jt.getSelectedRow();
defaultModel.removeRow(ind);
SwingUtils.alert("项目转移成功。");
}});

// 将各面板添加到JPanel
JPanel panel = new JPanel(new GridLayout(4, 1));
panel.add(p1);
panel.add(p2);
panel.add(p4);
panel.add(p3);

return panel;
}(1)创造JPanel实例p1,设置Layout为FlowLayout。创造JTextField的实例jfzid和jxmid,是否可见为false,添加到p1,创造Jxsgs的实例jxmzq和jsjdw,添加到p1。
(2)创造JPanel实例p2,设置Layout为FlowLayout。创造JTextField实例jxmmc,添加到p2。
(3)创造JPanel实例p4,设置Layout为FlowLayout。创造JTextField实例jxsw,添加到p4。
(4)创造JPanel实例p3,设置Layout为FlowLayout。创造JButton实例addBtn、delBtn、savBtn和xmzyBtn,添加到p3。
(5)调用实例方法setButtonState设置JButton的初始状态。
(6)创造JTable的mouseClicked监听实例。调用jt.rowAtPoint(e.getPoint())获得行序号,将这一行的数据填充在Vector实例中,调用vector2Comp将Vector中的数据填充到界面的输入项中。设置JButton的状态,设置new标记为false。
(7)创造JButton addBtn的actionPerformed监听实例。调用initEditItem设置界面输入项为初始值。调用setButtonState设置JButton的状态。调用setNew设置new状态为true。调用jt.clearSelection()清空JTable的选择。
(8)创造JButton delBtn的actionPerformed监听实例。调用jt.getSelectedRow()获得JTable的选择的行序号,调用SwingUtils的类方法confirm确认删除,调用jt.getModel().getValueAt(ind, 1).toString()获得所选择JTable行的xmid,调用xmsz2Action的方法getXmszDataNum获得项目下存在的记录数,如果记录数不为0,那么不能删除这个项目,调用xmsz2Action的方法deleteXmsz删除掉项目。调用defaultModel的方法removeRow删除对应的行。调用SwingUtils的fitTableColumns方法重新调整JTable列的宽度。
(9)创造JButton savBtn的actionPerformed监听实例。调用isValidate检查界面上的输入项数据是否为空等有效性检查,调用getNew获取new的状态值,如果new为true,表示新增状态,如果new为false,表示修改状态。新增状态时,调用comp2Xmsz将界面上的输入项值创建一个Xmsz实例,设置xmid为null,调用xmsz2Action的方法saveXmsz保存Xmsz数据,返回xmid有值的Xmsz实例,调用xmsz2Array转换Xmsz对象为一个数组。调用defaultModel的方法addRow添加到JTable的最后一行。调用SwingUtils的方法fitTableColumns调整JTable列的宽度。修改状态时,不用设置xmid为null,调用removeRow方法将修改的那条记录从JTable中删除,调用方法insertRow将返回的记录插入到JTable中。
(10)创造JButton xmzyBtn的actionPerformed监听实例。调用MyTree的类方法openXmfzJDialog打开Xmfz对话框,调用list.get(0).getNodeId()从返回值的list中获得分组ID,调用comp2Xmsz使用界面上的输入项值创造一个Xmsz实例,如果界面上的fzid值与对话框中选择的分组ID值相同,那么就已经转移成功!如果不相同,那么就修改xmsz实例的分组ID值,调用jt.getSelectedRow()获得JTable的选择行,删除该行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: