📄 usermenu.java
字号:
/** * creating User Menu (both the Users and Administrators) with Swing */import javax.swing.*;import java.awt.event.*;import java.awt.*;import java.util.*;import java.sql.*;import java.util.Properties;import java.net.*;public class UserMenu extends JApplet{ String[] Names_user = new String[50]; String[] description_user = new String[50]; int[][] Edges_user = new int[50][3]; int NumStart_user, NumEnd_user, VertexNum_user, EdgeNum_user; private JLabel l1_user = new JLabel("From:"), l2_user = new JLabel("To:"), l3_user = new JLabel("Departure Date:"), l4_user = new JLabel("Time:"), l5_user = new JLabel("Day"), l6_user = new JLabel("Month"), l7_user = new JLabel("Hour"), l8_user = new JLabel("Minutes"); private JTextField t1_user = new JTextField(15), t2_user = new JTextField(15); private JTextArea t_user = new JTextArea(20, 40); private JButton b1_user = new JButton("Start search"), b2_user = new JButton("New search"); private String[] descriptionDay = {"","01","02","03","04","05","06","07","08","09", "10","11","12","13","14","15","16","17","18","19","20","21", "22","23","24","25","26","27","28","29","30","31"}, descriptionMonth = {"","Jan","Feb","Mar","Apr","May","Jun","Jul", "Aug","Sep","Oct","Nov","Dec"}, descriptionHour = {"","01","02","03","04","05","06","07","08","09", "10","11","12","13","14","15","16","17","18","19","20","21", "22","23","24"}, descriptionMinutes = {"","00","15","30","45"}; private JComboBox c1_user = new JComboBox(), c2_user = new JComboBox(), cDay = new JComboBox(), cMonth = new JComboBox(), cHour = new JComboBox(), cMinutes = new JComboBox(); private int count1 = 0, count2 = 0, count3 = 0, count4 = 0; public void init() { try { Arrays.fill(Names_user,""); Driver driver = (Driver) Class.forName("com.jnetdirect.jsql.JSQLDriver").newInstance(); String connectStr = "jdbc:JSQLConnect://127.0.0.1/database=G6/user=sa"; Connection conn = driver.connect(connectStr, new Properties()); Statement stmt = conn.createStatement(); DatabaseMetaData db = conn.getMetaData(); String v = "select * from Stations"; PreparedStatement s = conn.prepareStatement(v); ResultSet rs = s.executeQuery(); int i = 1; while( rs.next()) { Names_user[i] = rs.getString("Name").trim(); i++; } }catch(Exception e1){} description_user = Names_user; for(int i=0; i<description_user.length; i++) { String s = description_user[i]; if ( !s.equals("") || i==0 ) { c1_user.addItem(s); c2_user.addItem(s); } } for(int i = 0; i < descriptionDay.length; i++) cDay.addItem(descriptionDay[count1++]); for(int i = 0; i < descriptionMonth.length; i++) cMonth.addItem(descriptionMonth[count2++]); for(int i = 0; i < descriptionHour.length; i++) cHour.addItem(descriptionHour[count3++]); for(int i = 0; i < descriptionMinutes.length; i++) cMinutes.addItem(descriptionMinutes[count4++]); b1_user.addActionListener(al1_user); b2_user.addActionListener(al2_user); Container cp = getContentPane(); cp.setLayout(new FlowLayout()); t_user.setForeground(Color.blue); cp.add(l1_user); cp.add(c1_user); cp.add(l2_user); cp.add(c2_user); cp.add(l3_user); cp.add(cDay); cp.add(l5_user); cp.add(cMonth); cp.add(l6_user); cp.add(l4_user); cp.add(cHour); cp.add(l7_user); cp.add(cMinutes); cp.add(l8_user); cp.add(b1_user); cp.add(b2_user); cp.add(t_user); } ActionListener al1_user = new ActionListener() { public void actionPerformed(ActionEvent e) { String s1 = ((String)c1_user.getSelectedItem()).toLowerCase(), s2 = ((String)c2_user.getSelectedItem()).toLowerCase(); try { Arrays.fill(Names_user,""); Driver driver = (Driver) Class.forName("com.jnetdirect.jsql.JSQLDriver").newInstance(); String connectStr = "jdbc:JSQLConnect://127.0.0.1/database=G6/user=sa"; Connection conn = driver.connect(connectStr, new Properties()); Statement stmt = conn.createStatement(); DatabaseMetaData db = conn.getMetaData(); String v = "select * from Stations"; PreparedStatement s = conn.prepareStatement(v); ResultSet rs = s.executeQuery(); int i=1; while (rs.next()) { Names_user[i] = rs.getString("Name").trim(); i++; } v = "select * from Routes"; s = conn.prepareStatement(v); rs= s.executeQuery(); int j = 0; while (rs.next()) { Edges_user[j][0]=rs.getInt("start_station"); Edges_user[j][1]=rs.getInt("end_station"); Edges_user[j][2]=rs.getInt("weight"); j++; } EdgeNum_user = j; v = "select Num from Stations where Name = '"+s1+"'"; s = conn.prepareStatement(v); rs= s.executeQuery(); while (rs.next()) { NumStart_user = rs.getInt("Num"); } v = "select Num from Stations where Name = '"+s2+"'"; s = conn.prepareStatement(v); rs= s.executeQuery(); while (rs.next()) { NumEnd_user = rs.getInt("Num"); } }catch(Exception e1){} boolean goodID = true; if ( s1.equals("") && !s2.equals("") ) { goodID = false; JOptionPane.showMessageDialog(null, "Please select a departure station!", "Error!", JOptionPane.ERROR_MESSAGE); } if ( s2.equals("") && !s1.equals("") ) { goodID = false; JOptionPane.showMessageDialog(null, "Please select a destination station!", "Error!", JOptionPane.ERROR_MESSAGE); } if ( s1.equals("") && s2.equals("") ) { goodID = false; JOptionPane.showMessageDialog(null, "Please select the departure and destination stations", "Error!", JOptionPane.ERROR_MESSAGE); } if ( s1.equals(s2) && goodID ) { goodID = false; JOptionPane.showMessageDialog(null, "The depart and arrive stations can not be same!", "Error!", JOptionPane.ERROR_MESSAGE); } if ( !s1.equals(s2) && goodID ) { int a1 = NumStart_user; int b1 = NumEnd_user; Route r = new Route(a1, b1); r.Edge = Edges_user; r.EdgeNum = EdgeNum_user; int[] stationNums = r.showRoutes(a1, b1); ArrayList a = new ArrayList(); if ( stationNums[0] != 999 ) { for(int i=1; i<stationNums.length; i++) { if( stationNums[i] != 0 ) { try { Driver driver = (Driver) Class.forName("com.jnetdirect.jsql.JSQLDriver").newInstance(); String connectStr = "jdbc:JSQLConnect://127.0.0.1/database=G6/user=sa"; Connection conn = driver.connect(connectStr, new Properties()); Statement stmt = conn.createStatement(); DatabaseMetaData db = conn.getMetaData(); String v = "select Name from Stations where Num = '"+stationNums[i]+"'"; PreparedStatement s = conn.prepareStatement(v); ResultSet rs = s.executeQuery(); while (rs.next()) { a.add(rs.getString("Name").trim()); } }catch(Exception e1){} } } a.add( Integer.toString(stationNums[0]) ); } t_user.append("Departure station:" + s1 + " " + "Destination station:" + s2 + "\n"); if ( a.size() !=0 ) { t_user.append("The fastest route:" + "\n"); for(int i=0; i<a.size()-2; i++) t_user.append(a.get(i) + " --> "); t_user.append(a.get(a.size()-2) + "\n"); t_user.append("Time consuming: " + a.get(a.size()-1) + "\n" + "\n"); } else t_user.append("Sorry!There is no route from" + " " + s1 + " " + "to" + " " + s2 + " " + "." + "\n" + "\n"); } } }, al2_user = new ActionListener() { public void actionPerformed(ActionEvent e) { t1_user.selectAll(); t1_user.cut(); t2_user.selectAll(); t2_user.cut(); t_user.selectAll(); t_user.cut(); c1_user.setSelectedItem(description_user[0]); c2_user.setSelectedItem(description_user[0]); cDay.setSelectedItem(descriptionDay[0]); cMonth.setSelectedItem(descriptionMonth[0]); cHour.setSelectedItem(descriptionHour[0]); cMinutes.setSelectedItem(descriptionMinutes[0]); } }; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -