⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainframe.java.bak

📁 这是网络连通性测试与日志管理
💻 BAK
字号:
//MainFrame.java
//主程序,主要框架,包括事件
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
import java.util.*;
public class  MainFrame extends JFrame{
	JPanel contentPane;
	BorderLayout borderLayout1 = new BorderLayout();
	JPanel jPanel1 = new JPanel();
	BorderLayout borderLayout2 = new BorderLayout();
	JPanel jPanel2 = new JPanel();
	BorderLayout borderLayout3 = new BorderLayout();
	JScrollPane jScrollPanel = new JScrollPane();
	JTable table = new JTable();

	DefaultTableModel tableModel = new DefaultTableModel();
	Vector data = new Vector();

	Vector columnNames;

	JMenuBar mb = new JMenuBar();
	Font menuFont= new Font("Dialog",Font.PLAIN,14);
	JMenu fileMenu = new JMenu();
	JMenuItem startItem = new JMenuItem();
	JMenuItem endItem = new JMenuItem();
	JMenuItem configItem = new JMenuItem();
	JMenuItem exitItem = new JMenuItem();
	

	JMenu logMenu = new JMenu();
	JMenuItem logManagerItem = new JMenuItem();


	JMenu helpMenu = new JMenu();
	JMenuItem aboutItem = new JMenuItem();
	JMenuItem helpItem = new JMenuItem();

	JPopupMenu popupMenu = new JPopupMenu();
	JMenuItem  menuAdd   = new JMenuItem();
	JMenuItem  menuEdit  = new JMenuItem();
	JMenuItem  menuDelete= new JMenuItem();
	JMenuItem  menuHelp= new JMenuItem();

	JToolBar toolBar = new JToolBar();
	JButton startButton=new JButton(new ImageIcon(getClass().getResource("image/start.gif")));
	JButton endButton=new JButton(new ImageIcon(getClass().getResource("image/stop.gif")));
	JButton configButton=new JButton(new ImageIcon(getClass().getResource("image/tool.gif")));
	JButton helpButton=new JButton(new ImageIcon(getClass().getResource("image/help.gif")));
	JButton exitButton=new JButton(new ImageIcon(getClass().getResource("image/exit.gif")));
	javax.swing.Timer time;
	javax.swing.Timer timeFresh;
	final int DELAY=100;
	int delay=0,delay1=0;
	int flag=0;
	public MainFrame(){
		enableEvents(AWTEvent.WINDOW_EVENT_MASK);
		try{
			initFrame();
		}
		catch(Exception e){
			e.printStackTrace();
		}
	}
	/**Component initialization*/
	private void initFrame()throws Exception{
		contentPane = (JPanel)this.getContentPane();
		contentPane.setLayout(borderLayout1);
		this.setSize(new Dimension(800,600));
		this.setTitle("网络连通测试与日志管理");
		this.setJMenuBar(mb);
		//jPanel1.setLayout(borderLayout2);
		fileMenu.setText("【文件】");
		fileMenu.setMnemonic('F');
		fileMenu.setFont(menuFont);
		startItem.setFont(menuFont);
		startItem.setText("开始");
		startItem.addActionListener(new java.awt.event.ActionListener(){
			public void actionPerformed(ActionEvent e){
				start_actionPerformed(e);
			}
		});
		endItem.setText("停止");
		endItem.setFont(menuFont);
		endItem.addActionListener(new java.awt.event.ActionListener(){
			public void actionPerformed(ActionEvent e){
				end_actionPerformed(e);
			}
		});
		configItem.setText("配置");
		configItem.setFont(menuFont);
		configItem.addActionListener(new java.awt.event.ActionListener(){
			public void actionPerformed(ActionEvent e){
				config_actionPerformed(e);
			}
		});
		exitItem.setText("退出");
		exitItem.setFont(menuFont);
		exitItem.addActionListener(new java.awt.event.ActionListener(){
			public void actionPerformed(ActionEvent e){
				exit_actionPerformed(e);
			}
		});
		logMenu.setText("【日志】");
		logMenu.setFont(menuFont);
		logManagerItem.setText("管理日志");
		logManagerItem.setFont(menuFont);
		logManagerItem.addActionListener(new java.awt.event.ActionListener(){
			public void actionPerformed(ActionEvent e){
				logManager_actionPerformed(e);
			}
		});
		helpMenu.setText("【帮助】");
		helpMenu.setFont(menuFont);
		aboutItem.setText("关于");
		aboutItem.setFont(menuFont);

		aboutItem.addActionListener(new java.awt.event.ActionListener(){
			public void actionPerformed(ActionEvent e){
				about_actionPerformed(e);
			}
		});

		helpItem.setText("软件帮助");
		helpItem.setFont(menuFont);
		
		helpItem.addActionListener(new java.awt.event.ActionListener(){
			public void actionPerformed(ActionEvent e){
				help_actionPerformed(e);
			}
		});
		mb.add(fileMenu);
		mb.add(logMenu);
		mb.add(helpMenu);
		fileMenu.add(startItem);
		fileMenu.add(endItem);
		fileMenu.add(configItem);
		fileMenu.add(exitItem);
		logMenu.add(logManagerItem);
		helpMenu.add(helpItem);
		helpMenu.add(aboutItem);
		//--------------------------------
		menuAdd.setText("增加");
		menuAdd.addActionListener(new java.awt.event.ActionListener(){
			public void actionPerformed(ActionEvent e){
				menuAdd_actionPerformed(e);
			}
		});
		menuEdit.setText("编辑");
		menuEdit.addActionListener(new java.awt.event.ActionListener(){
			public void actionPerformed(ActionEvent e){
				menuEdit_actionPerformed(e);
			}
		});
		menuDelete.setText("删除");
		menuDelete.addActionListener(new java.awt.event.ActionListener(){
			public void actionPerformed(ActionEvent e){
				menuDelete_actionPerformed(e);
			}
		});
		menuHelp.setText("帮助");
		menuHelp.addActionListener(new java.awt.event.ActionListener(){
			public void actionPerformed(ActionEvent e){
				help_actionPerformed(e);
			}
		});
		//---------------------------------
		startButton.setToolTipText("开始");
		startButton.addActionListener(new java.awt.event.ActionListener(){
			public void actionPerformed(ActionEvent e){
				start_actionPerformed(e);
			}
		});
		endButton.setToolTipText("停止");
		endButton.addActionListener(new java.awt.event.ActionListener(){
			public void actionPerformed(ActionEvent e){
				end_actionPerformed(e);
			}
		});
		configButton.setToolTipText("配置");
		configButton.addActionListener(new java.awt.event.ActionListener(){
			public void actionPerformed(ActionEvent e){
				config_actionPerformed(e);
			}
		});
		helpButton.setToolTipText("帮助");
		helpButton.addActionListener(new java.awt.event.ActionListener(){
			public void actionPerformed(ActionEvent e){
				help_actionPerformed(e);
			}
		});
		exitButton.setToolTipText("退出");
		exitButton.addActionListener(new java.awt.event.ActionListener(){
			public void actionPerformed(ActionEvent e){
				exit_actionPerformed(e);
			}
		});
		time=new javax.swing.Timer(DELAY,new java.awt.event.ActionListener(){
			public void actionPerformed(ActionEvent e){
				time_actionPerformed(e);
			}
		});
		timeFresh=new javax.swing.Timer(DELAY,new java.awt.event.ActionListener(){
			public void actionPerformed(ActionEvent e){
				timeFresh_actionPerformed(e);
			}
		});
		toolBar.add(startButton);
		toolBar.add(endButton);
		toolBar.add(configButton);
		toolBar.add(helpButton);
		toolBar.add(exitButton);
		popupMenu.add(menuAdd);
		popupMenu.add(menuEdit);
		popupMenu.add(menuDelete);
		popupMenu.add(menuHelp);
		contentPane.add(jPanel1,BorderLayout.NORTH);
		jPanel1.setLayout(borderLayout2);
		jPanel1.add(toolBar,BorderLayout.WEST);
		contentPane	.add(jPanel2,BorderLayout.CENTER);
		jPanel2.setLayout(borderLayout3);
		jPanel2.add(jScrollPanel,BorderLayout.CENTER);
		jScrollPanel.getViewport().add(table,null);

		table.addMouseListener(new java.awt.event.MouseAdapter(){
			public void mousePressed(MouseEvent e){
				table_mousePressed(e);
			}
		});
		table.addMouseListener(new java.awt.event.MouseAdapter(){
			public void mouseReleased(MouseEvent e){
				table_mouseReleased(e);
			}
		});
	
		initDataSource();
		initTableModel();
		initTableLook();

	}
	/** Overridden so we can exit when window is closed*/
	protected void processWindowEvent(WindowEvent e){
		super.processWindowEvent(e);
			if(e.getID()==WindowEvent.WINDOW_CLOSING){
				System.exit(0);
			}
	}
	//Random Number
	void initDataSource(){
			DataBaseSQL initData=new DataBaseSQL();
			String seleAll="Select * from Config";
			data=initData.setSelect(seleAll,2);
			initData.conClose();
		columnNames =ConfigFloor.getColumnNameVector();
	}
	//table model-----table
	void initTableModel(){
		tableModel.setDataVector(data,columnNames);	/*void setDataVector(Vector dataVector, Vector columnIdentifiers) 
											        //用新的行 Vector(dataVector)替换当前的 dataVector 实例变量。*/
		table.setModel(tableModel); 
	}
	//set selection mode:just select one row one time
	void initTableLook(){
		table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);//
	}

	void showPopupMenu(int x,int y){
		popupMenu.show(table,x,y);
	}
	void table_mouseReleased(MouseEvent e){
		if(e.isPopupTrigger()){
			showPopupMenu(e.getX(),e.getY());
		}
	}
	//When mouse right Click selected cells 
	void table_mousePressed(MouseEvent e){
		if(SwingUtilities.isRightMouseButton(e)){
			Point point = e.getPoint();
			int row = table.rowAtPoint(point);
			int column=table.columnAtPoint(point);
			table.changeSelection(row,column,false,false);
		}
	}

	void start_actionPerformed(ActionEvent e){
		if(flag!=1){
			NetTest netTest=new NetTest();
			netTest.start();
			initDataSource();
			initTableModel();
			time.start();
			timeFresh.start();
			flag=1;
		}
	}
	void end_actionPerformed(ActionEvent e){
		if(flag!=0){
			flag=0;
			time.stop();
			timeFresh.stop();
		}
	}
	void time_actionPerformed(ActionEvent e){
		delay++;
		if(delay>=200){
			NetTest netTest=new NetTest();
			netTest.start();
			initDataSource();
			initTableModel();
			delay=0;
		}
	}
   void timeFresh_actionPerformed(ActionEvent e){
		delay1++;
		if(delay1>=80){
			initDataSource();
			initTableModel();
			delay1=0;
		}
	}
	void config_actionPerformed(ActionEvent e){
		ConfigDialog dlg = new ConfigDialog();
		showDialog(dlg);
		if(dlg.isOk){
			initDataSource();
			initTableModel();
		}
		
	}
	
	void logManager_actionPerformed(ActionEvent e){
			LogDialog dlg = new LogDialog();
			showDialog(dlg);
		
	}
	void about_actionPerformed(ActionEvent e){
		About dlg=new About();
		showDialog(dlg);
	}
	void help_actionPerformed(ActionEvent e){

	}
	void exit_actionPerformed(ActionEvent e){
		System.exit(0);
	}
	
	/*显示并居中对话框
	*@param floor-需要编辑的Floor对象
	*/
	void showDialog(JDialog dlg){
		Dimension dlgSize = dlg.getPreferredSize();
		Dimension frmSize = getSize();
		Point loc = getLocation();
		dlg.setLocation((frmSize.width-dlgSize.width)/2+loc.x,(frmSize.height-dlgSize.height)/2+loc.y);
		dlg.setModal(true);//
		dlg.setVisible(true);
	}
	void menuAdd_actionPerformed(ActionEvent e){
			 DataBaseSQL ff = new DataBaseSQL();
			ConfigEditDialog dlg = new ConfigEditDialog();
			dlg.initDialog(ConfigEditDialog.NEW_OPERATION,null);
			showDialog(dlg);
			if(dlg.isOk){
				addRecord(dlg.getUpdatedFloor());
				table.revalidate();
				table.repaint();
				String sInsert="Insert into Config values('"+dlg.getUpdatedFloor().getIP()+"',"+dlg.getUpdatedFloor().getPort()+",0,'')";
				ff.setInsert(sInsert);
				ff.conClose();
			}

	}
	void menuEdit_actionPerformed(ActionEvent e){
			DataBaseSQL ff = new DataBaseSQL();
			int row = table.getSelectedRow();
			int column=table.getSelectedColumn();
			if(row==-1||column==-1)return;
			Vector v = (Vector)data.elementAt(row);
			ConfigFloor floorObj=ConfigFloor.parseMainFloor(v);

			ConfigEditDialog dlg = new ConfigEditDialog();
			//在显示对话框前必须指定当前的操作是哪类操作,例如删除,添加或修改
			dlg.initDialog(ConfigEditDialog.EDIT_OPERATION,floorObj);
			showDialog(dlg);
			if(dlg.isOk){
				editRecord(dlg.getUpdatedFloor(),row);
				table.revalidate();
				table.repaint();
				String sUpdate="Update Config set IP='"+dlg.getUpdatedFloor().getIP()+"',port="+dlg.getUpdatedFloor().getPort()+",wrongTimes=0 where IP='"+dlg.getUpdatedFloor().getIP()+"'";
				ff.setUpdate(sUpdate);
				ff.conClose();
			}
	}
	void menuDelete_actionPerformed(ActionEvent e){
			DataBaseSQL ff = new DataBaseSQL();
			int row = table.getSelectedRow();
			int column=table.getSelectedColumn();
			if(row==-1||column==-1)return;
			Vector v=(Vector)data.elementAt(row);
			ConfigFloor floorObj=ConfigFloor.parseMainFloor(v);

			ConfigEditDialog dlg = new ConfigEditDialog();

			dlg.initDialog(ConfigEditDialog.DELETE_OPERATION,floorObj);
			showDialog(dlg);
			if(dlg.isOk){
				deleteRecord(row);
				table.revalidate();
				table.repaint();
				String sDelete="Delete from Config where IP='"+dlg.getUpdatedFloor().getIP()+"'";
				ff.setDelete(sDelete);
				ff.conClose();
			}
	}
	/**
	*Floor对象加入表格模型内,在实际过程中需要加入对数据库的存盘
	*@param floor- 需要添加入表格模型内的Floor对象
	*/


	void addRecord(ConfigFloor floor){
		data.add(floor.getDataVector());
	}
	/*
	*编辑指定行的模型数据,在现实中除了显示数据后台外,还需要更新数据库
	*@param floor-需要编辑的Floor对象
	*@param index-指定的需要更改的行索引
	*/

	void editRecord(ConfigFloor floor,int index){
	Vector v = floor.getDataVector();
	data.setElementAt(v,index);
	}
	/**
	*删除数据模型里的指定行,在现实中除了显示的数据后台外,还需要更新数据库
	*@param index-需要删除的行索引
	*/
	void deleteRecord(int index){
		data.removeElementAt(index);
	}
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -