📄 test.java
字号:
/**
* Email: taorundong@126.com
*
* @author taorundong
* @version 1.00 07/02/04
*/
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.*;
import java.net.*;
import java.applet.*;
import java.net.URL;
public class Test extends JFrame implements ActionListener,MouseListener{
private
static Hashtable peopleList = null;
JMenuBar menuBar = null;
JMenu fileMenu = null;
JMenuItem itemExit = null;
JMenu helpMenu = null;
JMenuItem itemAbout = null;
JMenuItem itemFullScreen = null;
JMenuItem itemNormalSize = null;
JMenuItem itemSendFile = null;
MyPanel chatingPanel = null;
ServerSocket server = null;
Socket client = null;
URL musicURL = null;
AudioClip music = null;
int clickTimes = 0;
int windowState = 0;
Test(String title){
super(title);
setMouseListener();
menuBar = new JMenuBar();
fileMenu = new JMenu("File");
itemExit = new JMenuItem("Exit");
helpMenu = new JMenu("Help");
itemAbout = new JMenuItem("About");
itemFullScreen = new JMenuItem("Full Screen");
itemNormalSize = new JMenuItem("Normal Size");
itemSendFile = new JMenuItem("Send");
chatingPanel = new MyPanel();
peopleList = new Hashtable();
setMenu();
setScreenSize();
showChatingPanel();
this.setVisible(true);
this.setResizable(false);
new MusicThread("music\\start.wav");
setIcon();
peopleList = new Hashtable();
//port 6000
try{
server = new ServerSocket(6000);
}
catch(Exception e){
e.printStackTrace();
}
//deliver the hashTable to the panel
chatingPanel.setClientHash(peopleList);
serverListen(); //begin to accept the client's request
}
public void setMouseListener(){
this.addMouseListener(this);
}
public void mouseEntered(MouseEvent e){
if(e.getSource()==this){
this.setCursor(Cursor.HAND_CURSOR);
}
}
//To care about the mouse event
public void mousePressed(MouseEvent e){
}
public void mouseExited(MouseEvent e){
}
public void mouseReleased(MouseEvent e){
}
//you can set full screen with clicking the window twice
public void mouseClicked(MouseEvent e){
if(clickTimes<1){
clickTimes += 1;
return;
}
else if(windowState!=1){
setFullScreen();
clickTimes = 0;
windowState = 1;
return;
}
else{
setScreenSize();
clickTimes = 0;
windowState = 0;
}
}
public void serverListen(){
while(true){
try{
client = server.accept();
}
catch(Exception e){
e.printStackTrace();
}
if(client!=null){
ServerThread clientThread = new ServerThread(client,peopleList,chatingPanel.getJTextArea(),chatingPanel.getJComboBox());
clientThread.start();
}
else{
continue;
}
}
}
public void showChatingPanel(){
Container con = this.getContentPane();
con.add(chatingPanel);
con.validate();
}
public void setMenu(){
// menuBar.addMouseListener(this);
itemExit.addActionListener(this);
itemExit.setToolTipText("退出");
itemExit.setMnemonic('E');
itemAbout.addActionListener(this);
itemAbout.setToolTipText("关于");
itemFullScreen.addActionListener(this);
itemFullScreen.setToolTipText("全屏");
itemNormalSize.addActionListener(this);
itemNormalSize.setToolTipText("返回");
itemSendFile.addActionListener(this);
itemSendFile.setToolTipText("传送文件");
itemSendFile.setMnemonic('S');
fileMenu.add(itemFullScreen);
fileMenu.addSeparator();
fileMenu.setMnemonic('F');
fileMenu.add(itemNormalSize);
fileMenu.addSeparator();
fileMenu.add(itemSendFile);
fileMenu.addSeparator();
fileMenu.add(itemExit);
helpMenu.setMnemonic('H');
helpMenu.add(itemAbout);
menuBar.add(fileMenu);
menuBar.add(helpMenu);
menuBar.validate();
this.setJMenuBar(menuBar);
}
public void setScreenSize(){
Dimension screen = this.getToolkit().getScreenSize();
this.setBounds(200,100,2*screen.width/3+50,2*screen.height/3);
// this.setResizable(false);
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
dispose();
System.exit(0);
}
});
}
public void setFullScreen(){
Dimension screen = this.getToolkit().getScreenSize();
this.setBounds(0,0,screen.width,screen.height);
this.validate();
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==itemExit){
this.dispose();
System.exit(0);
}
if(e.getSource()==itemAbout){
new About("About");
return;
}
if(e.getSource()==itemFullScreen){
setFullScreen();
return;
}
if(e.getSource()==itemNormalSize){
setScreenSize();
return;
}
if(e.getSource()==itemSendFile){
//new file transfer thread
}
}
//insert a music clip
public void insertMusic(String musicName){
musicURL = this.getClass().getResource(musicName);
music = Applet.newAudioClip(musicURL);
music.play();
}
public void setIcon(){
this.setIconImage(this.getToolkit().getImage("picture\\11.gif"));
}
public static void main(String args[]){
new Test("Server");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -