📄 frame2_advancedfuncition.java~45~
字号:
package cardmanager;import java.sql.*;import java.awt.*;import java.awt.event.*;import java.awt.Dimension;import java.awt.Font;import java.awt.FontMetrics;import java.awt.Graphics;import javax.swing.*;import javax.swing.border.*;import javax.swing.ListSelectionModel;import javax.swing.event.ListSelectionListener;import javax.swing.event.ListSelectionEvent;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.SwingUtilities;import javax.swing.table.AbstractTableModel;import javax.swing.table.DefaultTableModel;import java.util.*;import java.io.*;import cardmanager.*;public class Frame2_AdvancedFuncition extends JFrame{ private JMenuBar jMenuBarInit = new JMenuBar(); private JMenu jMenuView = new JMenu("查看"); private JMenuItem jMenuItemView = new JMenuItem("查看到访情况"); private JMenuItem jMenuExit = new JMenuItem("退出"); private JMenu jMenuAbout = new JMenu("帮助"); private JMenuItem jMenuItemAbout = new JMenuItem("关于"); public JLabel listLabel = new JLabel("列表"); public DefaultTableModel model; public JTable jTableLeft; public String[] InitString = new String[500]; public String[] columnNames = {"列表"}; public Object[][] addObject= new Object[500][1]; public String SN; private JPanel jPanelLeft = new JPanel(); private JPanel jPanelRight = new JPanel(); private BorderLayout borderLayout1 = new BorderLayout(); private BorderLayout borderLayout2 = new BorderLayout(); private JPanel jPanel1 = new JPanel(); private JPanel jPanel2 = new JPanel(); private GridLayout gridLayout1 = new GridLayout(); private JLabel jLabel1 = new JLabel(); private JLabel jLabel2 = new JLabel(); private JLabel jLabel3 = new JLabel(); private JLabel jLabel4 = new JLabel(); private JLabel jLabel5 = new JLabel(); private JLabel jLabel6 = new JLabel(); private JTextField jTextFieldCompany = new JTextField(); private JTextField jTextFieldName = new JTextField(); private JTextField jTextFieldArrivalTime = new JTextField(); private JTextField jTextFieldRecentDate = new JTextField(); private JTextField jTextFieldPosition = new JTextField(); private JTextField jTextFieldSN = new JTextField(); private JPanel jPanel3 = new JPanel(); private JLabel jLabel7 = new JLabel(); // 数据库变量 public static Connection connect; // 连接变量 public static Statement statement; // 连接状态 public static ResultSet resultSet; //查询结果集 public Frame2_AdvancedFuncition() { enableEvents(AWTEvent.WINDOW_EVENT_MASK); try { jbInit(); } catch(Exception e) { e.printStackTrace(); } // 连接数据库 try { Class.forName("com.mysql.jdbc.Driver").newInstance(); // 注册驱动器 connect=DriverManager.getConnection ("jdbc:mysql:/localhost/mydb?useUnicode=true&characterEncoding=gb2312"); // 设置数据库url } // 处理异常 catch ( ClassNotFoundException cnfex ) { cnfex.printStackTrace(); } catch ( SQLException sqlex ) { sqlex.printStackTrace(); } catch ( Exception ex ) { ex.printStackTrace(); } } private void jbInit() throws Exception { this.setTitle("高级功能"); jPanelLeft.setLayout(borderLayout1); jPanelLeft.setMinimumSize(new Dimension(200, 8018)); jPanelLeft.setPreferredSize(new Dimension(200, 8018)); jPanelRight.setMinimumSize(new Dimension(600, 10)); jPanelRight.setPreferredSize(new Dimension(600, 10)); jPanelRight.setLayout(borderLayout2); listLabel.setBackground(Color.black); listLabel.setFont(new java.awt.Font("Dialog", 0, 15)); listLabel.setHorizontalAlignment(SwingConstants.CENTER); jPanel1.setLayout(gridLayout1); gridLayout1.setColumns(2); gridLayout1.setHgap(10); gridLayout1.setRows(6); gridLayout1.setVgap(10); jLabel1.setFont(new java.awt.Font("Dialog", 0, 15)); jLabel1.setHorizontalAlignment(SwingConstants.LEFT); jLabel1.setHorizontalTextPosition(SwingConstants.LEADING); jLabel1.setText(" 编号:"); jLabel2.setFont(new java.awt.Font("Dialog", 0, 15)); jLabel2.setToolTipText(""); jLabel2.setHorizontalAlignment(SwingConstants.LEFT); jLabel2.setHorizontalTextPosition(SwingConstants.LEADING); jLabel2.setText(" 最近到达时间:"); jLabel3.setFont(new java.awt.Font("Dialog", 0, 15)); jLabel3.setHorizontalAlignment(SwingConstants.LEFT); jLabel3.setHorizontalTextPosition(SwingConstants.LEADING); jLabel3.setText(" 来访次数:"); jLabel4.setFont(new java.awt.Font("Dialog", 0, 15)); jLabel4.setHorizontalAlignment(SwingConstants.LEFT); jLabel4.setHorizontalTextPosition(SwingConstants.LEADING); jLabel4.setText(" 职位:"); jLabel5.setFont(new java.awt.Font("Dialog", 0, 15)); jLabel5.setHorizontalAlignment(SwingConstants.LEFT); jLabel5.setHorizontalTextPosition(SwingConstants.LEADING); jLabel5.setText(" 单位:"); jLabel6.setFont(new java.awt.Font("Dialog", 0, 15)); jLabel6.setHorizontalAlignment(SwingConstants.LEFT); jLabel6.setHorizontalTextPosition(SwingConstants.LEADING); jLabel6.setText(" 姓名:"); jPanel3.setMinimumSize(new Dimension(10, 50)); jPanel3.setPreferredSize(new Dimension(10, 50)); jPanel2.setMinimumSize(new Dimension(10, 250)); jPanel2.setPreferredSize(new Dimension(10, 250)); jLabel7.setFont(new java.awt.Font("Dialog", 0, 17)); jLabel7.setText("到访记录"); jMenuAbout.setFont(new java.awt.Font("Dialog", 0, 14)); jMenuItemAbout.setFont(new java.awt.Font("Dialog", 0, 13)); jMenuExit.setFont(new java.awt.Font("Dialog", 0, 13)); jMenuItemView.setFont(new java.awt.Font("Dialog", 0, 13)); jMenuView.setFont(new java.awt.Font("Dialog", 0, 14)); jMenuView.add(jMenuItemView); jMenuItemView.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { jMenuView_actionPerformed(e); } }); jMenuView.addSeparator(); jMenuView.add(jMenuExit); jMenuExit.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { jMenuExit_actionPerformed(e); } }); jMenuAbout.add(jMenuItemAbout); jMenuItemAbout.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { jMenuAbout_actionPerformed(e); } }); jMenuBarInit.add(jMenuView); jMenuBarInit.add(jMenuAbout); this.setJMenuBar(jMenuBarInit); //菜单条初始化完毕 model = new DefaultTableModel(columnNames,500); jTableLeft = new JTable(model); jTableLeft.setPreferredScrollableViewportSize(new Dimension(50,700)); jTableLeft.setSelectionBackground(Color.blue); jTableLeft.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); ListSelectionModel rowSM = jTableLeft.getSelectionModel(); rowSM.addListSelectionListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { RecordSelectedAd_actionPerformed(e); } }); JScrollPane scrollpaneLeft = new JScrollPane(jTableLeft); jPanelLeft.add(listLabel, BorderLayout.NORTH); jPanelLeft.add(jTableLeft, BorderLayout.CENTER); this.getContentPane().add(jPanelLeft, BorderLayout.WEST); this.getContentPane().add(jPanelRight, BorderLayout.CENTER); jPanelRight.add(jPanel1, BorderLayout.CENTER); jPanel1.add(jLabel1, null); jPanel1.add(jTextFieldSN, null); jPanel1.add(jLabel6, null); jPanel1.add(jTextFieldName, null); jPanel1.add(jLabel5, null); jPanel1.add(jTextFieldCompany, null); jPanel1.add(jLabel4, null); jPanel1.add(jTextFieldPosition, null); jPanel1.add(jLabel3, null); jPanel1.add(jTextFieldArrivalTime, null); jPanel1.add(jLabel2, null); jPanel1.add(jTextFieldRecentDate, null); jPanelRight.add(jPanel2, BorderLayout.SOUTH); jPanelRight.add(jPanel3, BorderLayout.NORTH); jPanel3.add(jLabel7, null); } //Overridden so we can exit when window is closed protected void processWindowEvent(WindowEvent e) { if (e.getID() == WindowEvent.WINDOW_CLOSING) jMenuExit_actionPerformed(null); } public void jMenuView_actionPerformed(ActionEvent e) { try { statement = connect.createStatement(); String query = "select * from Arrival group by SN"; resultSet = statement.executeQuery(query); int i=0; while(resultSet.next()) { InitString[i]=resultSet.getString("SN")+" "+resultSet.getString("name"); i++; } System.out.println(i); Object[][] addObject= new Object[1000][1]; int size=model.getRowCount(); while(size>0) { model.removeRow(size-1); size--; } if(i==0) JOptionPane.showMessageDialog(null, "对不起!没有任何记录!", "提示", JOptionPane.WARNING_MESSAGE); else for(int j=0;j<i;j++) { addObject[j][0]=InitString[j]; model.insertRow(j,addObject[j]); } statement.close(); // 关闭数据库的连接 } catch ( SQLException sqlex ) { sqlex.printStackTrace ( ); } } public void jMenuExit_actionPerformed(ActionEvent e) { int option = 0; option = JOptionPane.showOptionDialog( null , "确定退出么?","退出", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE,null,null,null ); if ( option == JOptionPane.YES_OPTION ) System.exit ( 0 ); } public void jMenuAbout_actionPerformed(ActionEvent e) { String s = "显示登记时间,到达次数,\n"+ "必须先扫描才能写入数据库"; JTextArea useDis = new JTextArea ( s,3,10 ); useDis.setEditable(false); JScrollPane use = new JScrollPane ( useDis ); JOptionPane.showMessageDialog ( null ,useDis, "高级功能说明", JOptionPane.INFORMATION_MESSAGE ); } public void RecordSelectedAd_actionPerformed(ListSelectionEvent e) { //Ignore extra messages. javax.swing.table.TableModel model = jTableLeft.getModel(); if (e.getValueIsAdjusting()) return; ListSelectionModel lsm = (ListSelectionModel)e.getSource(); int selectedRow = lsm.getMinSelectionIndex(); try { statement = connect.createStatement(); String SN = model.getValueAt(selectedRow, 0).toString(); String SN1 = SN.substring(0,13); String query = "select * from Arrival where SN="+SN1; resultSet = statement.executeQuery(query); while(resultSet.next()) { jTextFieldSN.setText(resultSet.getString("SN")); jTextFieldName.setText(resultSet.getString("name")); jTextFieldCompany.setText(resultSet.getString("company")); jTextFieldPosition.setText(resultSet.getString("position")); jTextFieldArrivalTime.setText(resultSet.getString("ArrivalTime")); jTextFieldRecentDate.setText(resultSet.getString("RecentDate")); } statement.close ( ); // 关闭数据库的连接 resultSet.close(); } catch(NullPointerException npe) { JOptionPane.showMessageDialog(null, "没有选中一个记录!", "提示", JOptionPane.WARNING_MESSAGE); } catch ( SQLException sqlex ) { 陈雅伦sqlex.printStackTrace ( ); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -