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

📄 server.java

📁 模 拟 飞 机 飞 行 服 务 端
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
    ScheduledFuture<?> listenerHandle;
    int maxCon;
    worker.Listener listener;
    
    private void sendMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_sendMenuItemActionPerformed
        
        listener = new worker.Listener(file, port, senderPeriod, maxCon, this);
//        listener.runable();
        listenerHandle = scheduledExecutorService.schedule(listener, 0, TimeUnit.SECONDS);
        sendMenuItem.setEnabled(false);
        stopMenuItem.setEnabled(true);
        java.text.DateFormat df = java.text.DateFormat.getDateTimeInstance(java.text.DateFormat.DEFAULT, java.text.DateFormat.DEFAULT);
        serverStatus.append("信息:" + df.format(new java.util.Date(System.currentTimeMillis())) + "\n" + "已启动在" + port +"端口上的监听!" + "\n");
    }//GEN-LAST:event_sendMenuItemActionPerformed
    
    private void portFieldKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_portFieldKeyTyped
        applyButton.setEnabled(true);
    }//GEN-LAST:event_portFieldKeyTyped
    String filePath;
    
    private void applyButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_applyButtonActionPerformed
        try{
            port = Integer.valueOf(portField.getText());
            senderPeriod = ((Integer)senderPeriodSpinner.getValue()).intValue();
            maxCon = ((Integer)maxConSpinner.getValue()).intValue();
        }catch(NumberFormatException ex){
            infomation.setText(ex.getLocalizedMessage());
        }
        filePath = directoryField.getText();
        applyButton.setEnabled(false);
        jFileChooser.setCurrentDirectory(new File(filePath));
        currentDirectoryLabel.setText(filePath);
    }//GEN-LAST:event_applyButtonActionPerformed
    
    private void portFieldMouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_portFieldMouseExited
        settingDialog.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
    }//GEN-LAST:event_portFieldMouseExited
    
    private void portFieldMouseEntered(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_portFieldMouseEntered
        settingDialog.setCursor(new Cursor(Cursor.TEXT_CURSOR));
    }//GEN-LAST:event_portFieldMouseEntered
    
    private int senderPeriod;
    private void saveBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_saveBtnActionPerformed
        
        filePath = directoryField.getText();
        jFileChooser.setCurrentDirectory(new File(filePath));
        currentDirectoryLabel.setText(filePath);
        
        File conf;
        FileOutputStream fos = null;
        try {
            port = Integer.valueOf(portField.getText());
            conf = new File("conf.txt");
            conf.createNewFile();
            fos = new FileOutputStream(conf);
            
            fos.write("port ".getBytes());
            fos.write(String.valueOf(port).getBytes());
            fos.write(lineSeparator);
            
            fos.write("path ".getBytes());
            fos.write(filePath.getBytes());
            fos.write(lineSeparator);
            
            fos.write("sender ".getBytes());
            senderPeriod = ((Integer)senderPeriodSpinner.getValue()).intValue();
            fos.write(String.valueOf(senderPeriod).getBytes());
            fos.write(lineSeparator);
            
            fos.write("maxcon ".getBytes());
            maxCon = ((Integer)maxConSpinner.getValue()).intValue();
            fos.write(String.valueOf(maxCon).getBytes());
            
            settingDialog.dispose();
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(settingDialog,ex.getLocalizedMessage(),"错误",JOptionPane.ERROR_MESSAGE);
        } finally {
            try{
                conf = null;
                if(fos!=null) fos.close();
            }catch (IOException ex1) {
                ex1.printStackTrace();
            }
        }
        
    }//GEN-LAST:event_saveBtnActionPerformed
    
    private void cancelBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelBtnActionPerformed
        settingDialog.dispose();
    }//GEN-LAST:event_cancelBtnActionPerformed
    
    private void exitItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_exitItemActionPerformed
        System.exit(0);
    }//GEN-LAST:event_exitItemActionPerformed
    
    private void settingItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_settingItemActionPerformed
        settingDialog.pack();
        settingDialog.setVisible(true);
    }//GEN-LAST:event_settingItemActionPerformed
    
    private File file;
    private void openItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_openItemActionPerformed
        jFileChooser.setFileSelectionMode(jFileChooser.FILES_ONLY);
        try {
            int returnVal = jFileChooser.showOpenDialog(this);
            if (returnVal == JFileChooser.APPROVE_OPTION) {
                file = jFileChooser.getSelectedFile();
            }
            if(file != null){
                java.text.DateFormat df = java.text.DateFormat.getDateTimeInstance(java.text.DateFormat.DEFAULT, java.text.DateFormat.DEFAULT);
                serverStatus.append("信息:" + df.format(new java.util.Date(System.currentTimeMillis())) + "\n" + "文件 " + file.getPath() + "\n");
                sendMenuItem.setEnabled(true);
            }
        } catch (java.awt.HeadlessException e1) {
            e1.printStackTrace();
        }
    }//GEN-LAST:event_openItemActionPerformed
    
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        try {
            UIManager.setLookAndFeel(UIManager
                    .getSystemLookAndFeelClassName());
        } catch (Exception exception) {
            exception.printStackTrace();
        }
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Server().setVisible(true);
            }
        });
    }
    
    
    private int port;
    
    private void readPropertyFile() {
        FileInputStream fis = null;
        try {
            fis = new FileInputStream("conf.txt");
            Properties prop = new Properties();
            prop.load(fis);
            
            
            filePath = prop.getProperty("path");
            jFileChooser.setCurrentDirectory(new File(filePath));
            currentDirectoryLabel.setText(filePath);
            
            port = Integer.valueOf(prop.getProperty("port"));
            portField.setText(String.valueOf(port));
            
            senderPeriod = Integer.valueOf(prop.getProperty("sender"));
            senderPeriodSpinner.setValue(new Integer(senderPeriod));
            
            maxCon = Integer.valueOf(prop.getProperty("maxcon"));
            maxConSpinner.setValue(new Integer(maxCon));
            
        } catch (FileNotFoundException ex) {
            JOptionPane.showMessageDialog(this,"找不到confc.txt文件!","错误",JOptionPane.WARNING_MESSAGE);
            
        } catch (IOException ex) {
            JOptionPane.showMessageDialog(this,"无法读取confc.txt文件!","错误",JOptionPane.ERROR_MESSAGE);
            
        } catch(NumberFormatException ex){
            JOptionPane.showMessageDialog(this,"系统参数设置错误!","错误",JOptionPane.ERROR_MESSAGE);
        } catch(IllegalArgumentException ex){
            JOptionPane.showMessageDialog(this,"系统参数设置错误!","错误",JOptionPane.ERROR_MESSAGE);
        }finally{
            try {
                if(fis!=null) fis.close();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
    }
    
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JPanel InfoPanel;
    private javax.swing.JPanel addressPanel;
    private javax.swing.JButton applyButton;
    private javax.swing.JButton browseButton;
    private javax.swing.ButtonGroup buttonGroup1;
    private javax.swing.JButton cancelBtn;
    private javax.swing.JLabel currentDirectoryLabel;
    private javax.swing.JMenu dataMenu;
    private javax.swing.JTextField directoryField;
    private javax.swing.JLabel directoryLabel;
    private javax.swing.JMenuItem exitItem;
    private javax.swing.JMenu fileMenu;
    private javax.swing.JLabel infomation;
    private javax.swing.JFileChooser jFileChooser;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JSeparator jSeparator1;
    private javax.swing.JSeparator jSeparator2;
    private javax.swing.JSpinner maxConSpinner;
    private javax.swing.JMenuItem openItem;
    private javax.swing.JMenu optionMenu;
    private javax.swing.JPanel pathPanel;
    private javax.swing.JTextField portField;
    private javax.swing.JLabel portLabel;
    private javax.swing.JButton saveBtn;
    private javax.swing.JMenuItem sendMenuItem;
    private javax.swing.JSpinner senderPeriodSpinner;
    public javax.swing.JTextArea serverStatus;
    private javax.swing.JDialog settingDialog;
    private javax.swing.JMenuItem settingItem;
    private javax.swing.JTabbedPane settingTabbedPane1;
    private javax.swing.JScrollPane severStatusScrollpane;
    private javax.swing.JMenuItem stopMenuItem;
    // End of variables declaration//GEN-END:variables
}

⌨️ 快捷键说明

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