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

📄 pollserver.java

📁 自己写的轮询提问的小程序 新手刚学 多多指教 合乎哈
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        MenuBar.add(HelpMenu);

        setJMenuBar(MenuBar);

        java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
        setBounds((screenSize.width-800)/2, (screenSize.height-569)/2, 800, 569);
    }//GEN-END:initComponents

    private void QuestionListLoadMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_QuestionListLoadMenuItemActionPerformed
        JFileChooser fc = new JFileChooser();
        fc.addChoosableFileFilter(new SharedClasses.JPQFileFilter());

        
        // Show open dialog; this method does not return until the dialog is closed
        fc.showOpenDialog(new JFrame());
        File selFile = fc.getSelectedFile();
        if (selFile == null) return;
        
        if (!QuestionVector.loadFromFile(selFile.getAbsolutePath())) 
            JOptionPane.showMessageDialog(this, 
                "Could not open the file. Make sure it is a JPQ file.",
                "File error",
                JOptionPane.ERROR_MESSAGE);
    }//GEN-LAST:event_QuestionListLoadMenuItemActionPerformed

    private void QuestionListSaveMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_QuestionListSaveMenuItemActionPerformed
        String filename;
        JFileChooser fc = new JFileChooser();
        fc.addChoosableFileFilter(new SharedClasses.JPQFileFilter());

        
        // Show open dialog; this method does not return until the dialog is closed
        fc.showSaveDialog(new JFrame());
        File selFile = fc.getSelectedFile();
        if (selFile == null) return;
        
        filename = selFile.getAbsolutePath();
        if (!filename.endsWith(".jpq")) filename = filename + ".jpq";
        
        QuestionVector.saveToFile(filename);
    }//GEN-LAST:event_QuestionListSaveMenuItemActionPerformed

    private void AboutMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_AboutMenuItemActionPerformed
        AboutDialog MyAboutFrame = new AboutDialog(this, false);
        MyAboutFrame.show();        
    }//GEN-LAST:event_AboutMenuItemActionPerformed

    private void ExitMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ExitMenuItemActionPerformed
        stopServer();
        System.exit(0);
    }//GEN-LAST:event_ExitMenuItemActionPerformed

    private void StopServerMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_StopServerMenuItemActionPerformed
        stopServer();
    }//GEN-LAST:event_StopServerMenuItemActionPerformed

    private void StartServerMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_StartServerMenuItemActionPerformed
        startServer();
    }//GEN-LAST:event_StartServerMenuItemActionPerformed

    private void PostQuestionButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_PostQuestionButtonActionPerformed
        TalkThread t;
        
        currentQuestion = QuestionEditor.getQuestion();
        
        for (int i = 0; i < talkThreadVector.size(); i++) {
            t = (TalkThread) talkThreadVector.get(i);
            t.setQuestion(currentQuestion);
        }

        currentQuestion.newDataSet();
        
        int indx = QuestionVector.getIndexOfQuestion(currentQuestion);
        VoteDisplayControlPanel.setQuestionIndex(indx);
        VoteDisplayControlPanel.setDataSetIndex(currentQuestion.getDataSetListing().size() - 1);
        
        controlsSetEnabled(false);
        TimeoutTimer.stop();
        TimeoutTimer.start();
    }//GEN-LAST:event_PostQuestionButtonActionPerformed
    
    private void exitForm(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_exitForm
        stopServer();
        System.exit(0);
    }//GEN-LAST:event_exitForm
    
    public static void main(String args[]) {
        if ((args.length > 0) && (args[0].charAt(0) == '-') && (args[0].charAt(1) == 'p')) 
            new PollServer(true).setVisible(true);
        else new PollServer(false).setVisible(true);
    }
    
    public void setClientCount(int i) {
        if (currentQuestion == null) {
            //In this case all the clients have successfully answered
            controlsSetEnabled(true);
        }
        else {
            //In this case we are still waiting for replies
            controlsSetEnabled(false);            
        }
        
        if (i == 0) PostQuestionButton.setEnabled(false);
        else PostQuestionButton.setEnabled(true);
        
        ClientCount = i;

        ClientCountLabel.setText("Clients Connected: " + Integer.toString(i));
    }
    
    public int getClientCount() {
        return ClientCount;
    }
    
    public void addTalkThread(TalkThread t) {
        talkThreadVector.add(t);
        t.setQuestion(currentQuestion);
        
        setClientCount(talkThreadVector.size());
    }
    
    public void removeTalkThread(TalkThread t) {
        talkThreadVector.removeElement(t);
        
        setClientCount(talkThreadVector.size());
    }

    public void updateVotes(int i) {
        int indx = currentQuestion.getDataSetListing().size() - 1;
        DataSet ds = currentQuestion.getDataSetAt(indx);

        if (i == 1) {ds.addVoteA(); }
        if (i == 2) {ds.addVoteB(); }
        if (i == 3) {ds.addVoteC(); }
        if (i == 4) {ds.addVoteD(); }
        if (i == 5) {ds.addVoteE(); }
        if (i == 6) {ds.addVoteF(); }
        if (currentQuestion == null) updateVoteLabels();
    }

    private void updateVoteLabels() {
        QuestionVector.fireSyncEvent();
    }
    
    private void resetQuestion(boolean EnableControls) {
        QuestionEditor.nextQuestion();
        controlsSetEnabled(EnableControls);
        currentQuestion = null;
    }
    
    private void controlsSetEnabled(boolean b) {
        QuestionEditor.setEnabled(b);
        PostQuestionButton.setEnabled(b);
        FileMenu.setEnabled(b);
        HelpMenu.setEnabled(b);
    }

    private void startServer() {
        if (servThread != null) return;
        
        servThread = new PollServerThread(this);
        servThread.start();
        
        try {
            MyGraphFrame.setIPAddress(InetAddress.getLocalHost().getHostAddress());
            IPAddressLabel.setText("Network Address: " + InetAddress.getLocalHost().getHostAddress());            
        } catch (UnknownHostException e) { }
        
        
        if (getClientCount() > 0) controlsSetEnabled(true);
        StartServerMenuItem.setEnabled(false);
        StopServerMenuItem.setEnabled(true);
        
    }
    
    private void stopServer() {
        TalkThread t;
        
        if (servThread != null) {
            
            servThread.stop();

            while (talkThreadVector.size() > 0) {
                t = (TalkThread) talkThreadVector.get(0);
                t.stop();
            }
            StartServerMenuItem.setEnabled(true);
            StopServerMenuItem.setEnabled(false);
            PostQuestionButton.setEnabled(false);
        }

    }
    
    public void setServerStatus(boolean b) {
        if (b) {
            ServerStatusLabel.setText("Server running");
        }
        else {
            ServerStatusLabel.setText("Server not running");
            servThread = null;
        }
    }

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JMenuItem AboutMenuItem;
    private javax.swing.JLabel ClientCountLabel;
    private javax.swing.JMenuItem ExitMenuItem;
    private javax.swing.JMenu FileMenu;
    private javax.swing.JMenu HelpMenu;
    private javax.swing.JLabel IPAddressLabel;
    private javax.swing.JMenuBar MenuBar;
    private javax.swing.JButton PostQuestionButton;
    private SharedClasses.QuestionEditorPanel QuestionEditor;
    private javax.swing.JMenuItem QuestionListLoadMenuItem;
    private javax.swing.JMenuItem QuestionListSaveMenuItem;
    private javax.swing.JLabel ServerStatusLabel;
    private javax.swing.JMenuItem StartServerMenuItem;
    private javax.swing.JMenuItem StopServerMenuItem;
    private javax.swing.JLabel TimeoutLabel;
    private SharedClasses.VoteDisplayControl VoteDisplayControlPanel;
    private SharedClasses.GraphPanel VoteGraphPanel;
    private javax.swing.JSeparator jSeparator1;
    private javax.swing.JSeparator jSeparator2;
    private javax.swing.JSeparator jSeparator3;
    private javax.swing.JSeparator jSeparator4;
    private javax.swing.JSeparator jSeparator5;
    private javax.swing.JSeparator jSeparator6;
    private javax.swing.JSeparator jSeparator7;
    // End of variables declaration//GEN-END:variables

    private PollServerThread servThread;
    private javax.swing.Timer TimeoutTimer;
    private int time = 0;
    private Question currentQuestion = null;

    private int ClientCount = 0;
    private GraphFrame MyGraphFrame;

    private Vector talkThreadVector = new Vector();
    
    private JPQuestionVector QuestionVector = new JPQuestionVector();
    
}

⌨️ 快捷键说明

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