📄 pollserver.java
字号:
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 + -