📄 phonesimulator.java
字号:
while((add=in.readLine())!=null){//从服务器端读出地址簿
phoneAddTextArea.append(add+"\n"
);//加入到文本框中
}
in.close();
}
phoneAddSocket.close();
saveButton.setEnabled(true);
}
catch (UnknownHostException e) {
System.err.println("Don't know about host:"+host );
saveButton.setEnabled(false);//初始化没有成功,该button无效
}
catch(IOException e){
System.err.println("error:"+e.getMessage());
saveButton.setEnabled(false);//初始化没有成功,该button无效
}
}
/** 用于产生自动拨号进程的类。
*/
public class AutoDialWorker extends SwingWorker {
/** 自动拨号的号码。
*/
private String num;
/** 自动拨号进程构造方法
* @param number 自动拨号的号码。
*/
public AutoDialWorker(java.lang.String number) {
num=number;
}
/**
* 设定自动拨号进程所要完成的任务。
* @return 本系统中无效。
*/
public Object construct() {
//System.out.println("AutoDialWorker construct invoked!");
for(int i=0;i<num.length();i++){
char digit=num.charAt(i);
switch(digit){
case('0'):
Button0.doClick();
break;
case('1'):
Button1.doClick();
break;
case('2'):
Button2.doClick();
break;
case('3'):
Button3.doClick();
break;
case('4'):
Button4.doClick();
break;
case('5'):
Button5.doClick();
break;
case('6'):
Button6.doClick();
break;
case('7'):
Button7.doClick();
break;
case('8'):
Button8.doClick();
break;
case('9'):
Button9.doClick();
break;
}
try{
Thread currentThread=Thread.currentThread();
currentThread.sleep(200);
}
catch(InterruptedException e){
System.out.println(e.getMessage());
}
}
return null;
}
}
/** 初始状态
*/
private final int initialState = 0;
/** 免提状态
*/
private final int directListenState = 1;
/**自动拨号状态A
*/
private final int autoDialAState = 3;
/**自动拨号状态B
*/
private final int autoDialBState = 4;
/**手工拨号状态
*/
private final int manualDialState = 5;
/**连接状态
*/
private final int connectState = 6;
/**记录上一次所拨的电话号码
*/
private String lastDialNumber="";
/**记录当前正在拨的电话号码
*/
private StringBuffer currentDialNumber;
/**记录当前拨的某一按钮的号码
*/
private char currentNumber;
/**记录当前的所处的状态
*/
private int currentState=initialState;
/**是否是第一次拨数字键
*/
private boolean firstDial=true;
/**记录从哪个状态进入手工拨号状态
*/
private int fromStateMan;
/**记录从哪个状态进入连接状态
*/
private int fromStateCon;
/**记录从哪个状态进入自动拨号状态
*/
private int fromStateAuto;
/**记录当前所拨的号码的个数
*/
private int noOfNumber=0;
/**是否接通
*/
private boolean isConnected;
/**音频文件
*/
private java.applet.AudioClip[] dialDigitAudio=new java.applet.AudioClip[10];
/**忙音
*/
private java.applet.AudioClip busyAudio;
/**用哪个音呼叫(忙音或响铃)
*/
private java.applet.AudioClip connectAudio;
/**免提声
*/
private java.applet.AudioClip directListenAudio;
/**响铃
*/
private java.applet.AudioClip ringAudio;
/**挂断音
*/
private java.applet.AudioClip hangUpAudio;
/**非数字键声音
*/
private java.applet.AudioClip dialNonDigitAudio;
/**在地址簿中选中的号码
*/
private String selectedNum=null;
/**用于自动拨号的进程
*/
private AutoDialWorker autoDialThread=null;
// Variables declaration - do not modify//GEN-BEGIN:variables
/**按键组
*/
private javax.swing.ButtonGroup functionRadioGroup;
/**顶层panel
*/
private javax.swing.JPanel topPanel;
/**左部panel
*/
private javax.swing.JPanel westPanel;
/**记事簿标签
*/
private javax.swing.JLabel notepadLabel;
/**记事簿滚动条
*/
private javax.swing.JScrollPane notepadScrollPane;
/**记事簿文本区
*/
private javax.swing.JTextArea notepadTextArea;
/**中心panel
*/
private javax.swing.JPanel centerPanel;
/**电话号码显示屏
*/
private javax.swing.JTextField phoneNumDisp;
/**按键panel
*/
private javax.swing.JPanel buttonPanel;
/**数字键一
*/
private javax.swing.JButton Button1;
/**数字键二
*/
private javax.swing.JButton Button2;
/**数字键三
*/
private javax.swing.JButton Button3;
/**数字键四
*/
private javax.swing.JButton Button4;
/**数字键五
*/
private javax.swing.JButton Button5;
/**数字键六
*/
private javax.swing.JButton Button6;
/**数字键七
*/
private javax.swing.JButton Button7;
/**数字键八
*/
private javax.swing.JButton Button8;
/**数字键九
*/
private javax.swing.JButton Button9;
/**键*
*/
private javax.swing.JButton ButtonStar;
/**数字键零
*/
private javax.swing.JButton Button0;
/**键#
*/
private javax.swing.JButton ButtonSharp;
/**右边panel
*/
private javax.swing.JPanel eastPanel;
/**地址簿标签
*/
private javax.swing.JLabel phoneAddLabel;
/**地址簿滚动条
*/
private javax.swing.JScrollPane phoneAddScrollPane;
/**地址簿文本区
*/
private javax.swing.JTextArea phoneAddTextArea;
/**下部panel
*/
private javax.swing.JPanel southPanel;
/**拨号键
*/
private javax.swing.JButton dialButton;
/**存储键
*/
private javax.swing.JButton storeButton;
/**保存键
*/
private javax.swing.JButton saveButton;
/**挂断键
*/
private javax.swing.JButton hangupButton;
/**重播键
*/
private javax.swing.JButton redialButton;
/**免提键
*/
private javax.swing.JToggleButton directListenToggle;
/**暂停键
*/
private javax.swing.JToggleButton pauseToggle;
// End of variables declaration//GEN-END:variables
/**用于访问本地文件系统而建立的客户端socket
*/
private Socket phoneAddSocket;
/**表示用户想存储地址簿
*/
public static final int savePhoneAdd = 0;
/**表示用户想读取地址簿
*/
public static final int readPhoneAdd = 1;
/**服务器主机地址
*/
public String host = null;
/**表示是在初始化时加载地址簿
*/
public static int initialAdd=1;
/**表示是在非初始化时加载地址簿
*/
public static int accessAdd=0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -