📄 mainframe.java.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 + -