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