📄 treelist.java
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.tree.*;
import javax.swing.border.*;
import java.util.*;
import java.net.*;
import java.io.*;
public class TreeList extends JPanel
{
JButton btAddatm=new JButton("启动网络");
JButton btAddsrv=new JButton("关闭网络");
DefaultMutableTreeNode root = new DefaultMutableTreeNode("银行网络中心");
DefaultMutableTreeNode nodeAtm = new DefaultMutableTreeNode("ATM服务请求监听中...");
DefaultMutableTreeNode nodeSrv = new DefaultMutableTreeNode("售货机请求监听中..");
DefaultMutableTreeNode nodeCom = new DefaultMutableTreeNode("公司网络请求监听中..");
DefaultTreeModel treeModel = new DefaultTreeModel(root);
JTree tree = new JTree(treeModel);
private ActionListener listener=new ActionResponse();
Vector atm_List=new Vector();
Vector srv_List=new Vector();
Vector com_List=new Vector();
public TreeList()
{
this.setLayout(null);
//treeModel.addTreeModelListener(this);
treeModel.insertNodeInto(nodeAtm, root, root.getChildCount());
treeModel.insertNodeInto(nodeSrv, root, root.getChildCount());
treeModel.insertNodeInto(nodeCom, root, root.getChildCount());
tree.setBounds(0,0,180,150);
tree.setRowHeight(20);
DefaultTreeCellRenderer cellRenderer = (DefaultTreeCellRenderer)tree.getCellRenderer();
cellRenderer.setLeafIcon(new ImageIcon(".\\icons\\leaf.gif"));
cellRenderer.setOpenIcon(new ImageIcon(".\\icons\\open.gif"));
cellRenderer.setClosedIcon(new ImageIcon(".\\icons\\close.gif"));
cellRenderer.setFont(new Font("宋体",Font.PLAIN,12));
cellRenderer.setBackgroundNonSelectionColor(Color.white);
cellRenderer.setBackgroundSelectionColor(Color.yellow);
cellRenderer.setBorderSelectionColor(Color.red);
cellRenderer.setTextNonSelectionColor(Color.black);
cellRenderer.setTextSelectionColor(Color.blue);
tree.setEditable(true);
JScrollPane scrollPane = new JScrollPane();
scrollPane.setViewportView(tree);
scrollPane.setBounds(15,5,180,150);
//scrollPane.setBorder(BorderFactory.createTitledBorder(
// BorderFactory.createLineBorder(Color.BLACK,1),
// "网络监视器",TitledBorder.CENTER,TitledBorder.TOP));
this.add(scrollPane);
setButton();
this.add(btAddatm);
this.add(btAddsrv);
tree.expandPath(new TreePath(root.getPath()));
StartNetwork();
}
private void setButton()
{
btAddatm.setBounds(10,160,90,30);
btAddatm.addActionListener(listener);
btAddsrv.setBounds(110,160,90,30);
btAddsrv.addActionListener(listener);
}
private void StartNetwork()
{
try{
ServerSocket ListenAtm=new ServerSocket(6688);
ServerSocket ListenSrv=new ServerSocket(8848);
ServerSocket ListenCom=new ServerSocket(9000);
System.out.println("The Server begin to listen ATM and AUTO Services Require!");
(new ListenService(ListenCom,tree,nodeCom,treeModel,com_List)).start();
(new ListenService(ListenAtm,tree,nodeAtm,treeModel,atm_List)).start();
(new ListenService(ListenSrv,tree,nodeSrv,treeModel,srv_List)).start();
}
catch(IOException e)
{System.out.println(e.toString());}
}
class ActionResponse implements ActionListener
{
public void actionPerformed (ActionEvent e)
{
String cmd = e.getActionCommand();
if (cmd.equals("增加Atm"))
{
DefaultMutableTreeNode newNode = new DefaultMutableTreeNode("新节点");
treeModel.insertNodeInto(newNode,nodeAtm, nodeAtm.getChildCount());
tree.scrollPathToVisible(new TreePath(newNode.getPath()));
atm_List.addElement(newNode);
}
if (cmd.equals("增加Srv"))
{
treeModel.removeNodeFromParent((DefaultMutableTreeNode)atm_List.elementAt(0));
// treeModel.reload();
atm_List.remove(0);
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -