📄 mainframe.java
字号:
package boco.transmonitor.tranmonitor;//******************************************************************************//:功能:实现监控的整个页面//:时间:2002-07//:作者:王建宾//:特殊描述::test:为DEBUG时启用//:程序描述:// 本程序由4个主要部分组成// (1)各种控件与变量的定义// (2)控件与变量的初始化及整个监控页面的显示// (3)事件响应的定义及函数// (4)监控面包括三大主体:业务种类选择CheckList/确认操作及清除区controlPane// /监控数据显示区jTableMode//******************************************************************************import java.awt.*;import java.awt.event.*;import java.applet.*;import javax.swing.*;import java.util.*;import javax.swing.JTable;import javax.swing.table.*;import java.lang.Integer;import java.net.*;import java.io.*;import javax.swing.border.*;import javax.swing.UIManager;public class mainFrame extends JFrame{ //业务种类监控控件 private JButton buttonSure = null; private JButton buttonDel = null; private JButton buttonClear = null; TradeCode trdCod = null; String tradeName = ""; String tradeCode = ""; Vector vTradeName = new Vector(); Vector vTradeCode = new Vector(); int i = 0; int size = 0; //业务种类选择列表框 JList CheckList = null; CheckableItem[] items = null; //滚动显示选择框面板 JScrollPane JSTrade=null; //控制面板 JPanel controlPane = null; //业务种类条件参数 Vector Cond = new Vector(); //主面板 JPanel contentPane=null; //滚动面板 JScrollPane JScroll=null; //数据显示表 JTable jTableMode=null; //数据表值 TableValues tv=null; private TitledBorder titledBorder1; private JLabel LabelChoose = new JLabel(); //码转换 ChineseTransfer A2C = new ChineseTransfer(); //****************************************************************************** //构造函数/初始化函数/控件初始化定义开始: //构造函数 public mainFrame() { enableEvents(AWTEvent.WINDOW_EVENT_MASK); try { jbInit(); } catch(Exception e) { e.printStackTrace(); } } //主模板主控件的初始化public void jbInit() throws Exception { //contentPane显示 contentPane = (JPanel) this.getContentPane(); titledBorder1 = new TitledBorder(""); contentPane.setLayout(null); this.setSize(new Dimension(800, 600)); this.setTitle("Web Detector"); //取业务种类及名称 trdCod = new TradeCode(); trdCod.getAllTrade(); vTradeCode = trdCod.getAllTradeCode(); vTradeName = trdCod.getAllTradeName(); size = vTradeName.size(); //取出显示业务总类值 CheckList = new JList(createData(vTradeName,vTradeCode)); CheckList.setCellRenderer(new CheckListRenderer()); CheckList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); CheckList.setBorder(new EmptyBorder(0,4,0,0)); CheckList.setBackground(Color.lightGray); CheckList.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { int index = CheckList.locationToIndex(e.getPoint()); CheckableItem item = (CheckableItem)CheckList.getModel().getElementAt(index); item.setSelected(!item.isSelected()); Rectangle rect = CheckList.getCellBounds(index, index); CheckList.repaint(rect); } }); JSTrade = new JScrollPane(CheckList); JSTrade.setBounds(new Rectangle(5, 50, 135, 520)); JSTrade.add(LabelChoose,null); //:test:System.out.println("Size:"+size); //以Checkbox的方式显示业务种类进行选择 LabelChoose.setText("请选择监控业务:"); LabelChoose.setBounds(new Rectangle(5, 10, 130, 20)); //LabelChoose.setForeground(Color.red); buttonSure = new JButton("业务监控开始"); buttonSure.setBounds(new Rectangle(255, 10, 114, 20)); //buttonSure.setForeground(Color.blue); buttonSure.addMouseListener(new java.awt.event.MouseAdapter(){ public void mouseClicked(MouseEvent eb){ buttonSure_mouseClicked(eb); } }); buttonClear = new JButton("清除选中业务"); buttonClear.setBounds(new Rectangle(135, 10, 114, 20)); //buttonClear.setForeground(Color.blue); buttonClear.addMouseListener(new java.awt.event.MouseAdapter(){ public void mouseClicked(MouseEvent ec){ buttonClear_mouseClicked(ec); } }); buttonDel = new JButton("删除监控表数据"); buttonDel.setBounds(new Rectangle(375, 10, 124, 20)); //buttonClear.setForeground(Color.blue); buttonDel.addMouseListener(new java.awt.event.MouseAdapter(){ public void mouseClicked(MouseEvent ed){ buttonDel_mouseClicked(ed); } }); //controlPane显示 controlPane = new JPanel(); controlPane.setBounds(new Rectangle(10, 10, 500, 40)); controlPane.setLayout(null); controlPane.add(LabelChoose,null); controlPane.add(buttonSure,null); controlPane.add(buttonClear,null); controlPane.add(buttonDel,null); viewTV(getTVCond());}//取得TV的函数public void viewTV(Vector SqlCon){ //定义JTable并设置属性 tv=new TableValues(SqlCon); jTableMode = new JTable(tv); jTableMode.setSelectionForeground(Color.red); jTableMode.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); if(tv.getRowCount()!=0){ jTableMode.getColumnModel().getColumn(0).setPreferredWidth(120); jTableMode.getColumnModel().getColumn(1).setPreferredWidth(40); jTableMode.getColumnModel().getColumn(2).setPreferredWidth(150); } jTableMode.setAutoscrolls(true); jTableMode.setRowSelectionAllowed(true); //jTableMode.setForeground(Color.blue); //定义JScroll并设置属性 JScroll = new JScrollPane(jTableMode); JScroll.setAutoscrolls(true); JScroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); JScroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); JScroll.setViewportBorder(BorderFactory.createEtchedBorder()); JScroll.setBounds(new Rectangle(145, 50, 635, 520)); //JScroll.setBackground(Color.lightGray); //JViewport jsp=JScroll.getViewport(); //jsp.setViewPosition(new Point(0,1000)); //jsp.setView(jTableMode); contentPane.removeAll(); contentPane.add(controlPane,null); contentPane.add(JSTrade,null); contentPane.add(JScroll,null);}//Window事件响应 protected void processWindowEvent(WindowEvent e) { super.processWindowEvent(e); if (e.getID() == WindowEvent.WINDOW_CLOSING) { System.exit(0); } }//传送业务种类函数public Vector getTVCond(){ return Cond;}//显示业务列表函数private CheckableItem[] createData(Vector Name,Vector Code) { int n = Name.size(); items = new CheckableItem[n]; for (int i=0;i<n;i++) { items[i] = new CheckableItem(A2C.AsciiToChineseString(Name.elementAt(i).toString().trim()) + "(" + Code.elementAt(i).toString().trim() + ")"); } return items; }//可显示业务列表的对象及方法 class CheckableItem { private String str; private boolean isSelected; public CheckableItem(String str) { this.str = str; isSelected = false; } public void setSelected(boolean b) { isSelected = b; } public boolean isSelected() { return isSelected; } public String toString() { return str; } }//buttonTime点击响应事件,累计选中业务public void buttonSure_mouseClicked(MouseEvent e){ Cond.removeAllElements(); for(i=0;i<size;i++){ if(items[i].isSelected()) Cond.addElement(vTradeCode.elementAt(i).toString().trim()); } viewTV(getTVCond()); //:test:System.out.println(Cond.size());}//buttonClear点击响应事件,清除选中的业务public void buttonClear_mouseClicked(MouseEvent e){ for(i=0;i<size;i++){ items[i].setSelected(false); } JSTrade.setVisible(false); JSTrade.setVisible(true);}//buttonDel点击响应事件,清除监控表数据public void buttonDel_mouseClicked(MouseEvent e){ delDBDetect del = new delDBDetect(); viewTV(getTVCond());}class CheckListRenderer extends JCheckBox implements ListCellRenderer { public CheckListRenderer() { setBackground(UIManager.getColor("List.textBackground")); setForeground(UIManager.getColor("List.textForeground")); } public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean hasFocus) { setEnabled(list.isEnabled()); setSelected(((CheckableItem)value).isSelected()); setFont(list.getFont()); setText(value.toString()); return this; } } public static void main(String[] args) { try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch(Exception e) { e.printStackTrace(); } boolean packFrame = false; mainFrame frame = new mainFrame(); if (packFrame) { frame.pack(); } else { frame.validate(); } Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Dimension frameSize = frame.getSize(); if (frameSize.height > screenSize.height) { frameSize.height = screenSize.height; } if (frameSize.width > screenSize.width) { frameSize.width = screenSize.width; } frame.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2); frame.setVisible(true); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -