📄 frame1.java~4~
字号:
package tcpserver;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
import com.borland.jbcl.layout.*;
import javax.swing.*;
/**
* <p>Title: no</p>
* <p>Description: This a Java builder program</p>
* <p>Copyright: Copyright (c) 2002</p>
* <p>Company: home</p>
* @author liujun
* @version 1.0
*/
public class Frame1 extends JFrame implements Runnable{
private JPanel contentPane;
private XYLayout xYLayout1 = new XYLayout();
private TextArea textArea1 = new TextArea();
private Label label1 = new Label();
private TextField textField1 = new TextField();
private Button button1 = new Button();
private Button button2 = new Button();
ServerSocket server = null;
Socket socket = null;
BufferedReader in = null;
PrintWriter out = null;
InetAddress myServer=null;
//Construct the frame
public Frame1() {
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
//Component initialization
private void jbInit() throws Exception {
//setIconImage(Toolkit.getDefaultToolkit().createImage(Frame1.class.getResource("[Your Icon]")));
contentPane = (JPanel) this.getContentPane();
textArea1.setText(" ");
contentPane.setLayout(xYLayout1);
this.setSize(new Dimension(400, 300));
this.setTitle("服务器端");
label1.setText("消息:");
textField1.setEditable(false);
textField1.setText(" ");
textField1.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(KeyEvent e) {
textField1_keyPressed(e);
}
});
button1.setEnabled(false);
button1.setLabel("开始发送");
button1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
button1_actionPerformed(e);
}
});
button2.setLabel("退出");
button2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
button2_actionPerformed(e);
}
});
contentPane.add(textArea1, new XYConstraints(5, 7, 389, 190));
contentPane.add(textField1, new XYConstraints(93, 209, 258, 26));
contentPane.add(button1, new XYConstraints(7, 241, 124, 26));
contentPane.add(button2, new XYConstraints(287, 241, 97, 30));
contentPane.add(label1, new XYConstraints(27, 207, 45, 26));
}
//Overridden so we can exit when window is closed
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
//添加代码
try{
out.println("server exit!");
out.flush();
}catch(Exception ex){}
finally{
System.exit(0);
}
}
}
void button1_actionPerformed(ActionEvent e) {
out.println(textField1.getText());
out.flush();
textArea1.append("server information:"+textField1.getText()+"\n");
textField1.setText("");
}
void button2_actionPerformed(ActionEvent e) {
try{
out.println("serverexit!");
out.flush();
}catch(Exception e2){}
finally{
System.exit(0);
}
}
void textField1_keyPressed(KeyEvent e) {
int j=e.getKeyCode();
if(j==e.VK_ENTER){
out.println(textField1.getText());
out.flush();
textArea1.append("server information:"+textField1.getText()+"\n");
textField1.setText("");
}
}
public void run() {
try{
//在端口5438上注册服务
server = new ServerSocket(1258);
socket = server.accept();
in = new BufferedReader (new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(socket.getOutputStream());
if (socket!= null){
textArea1.append("system information: client have joined!\n");
button1.setEnabled(true);
}
receiver r = new receiver();
Thread t = new Thread(r);
t.start();
}catch(Exception e){
textArea1.append(e.toString()+"\n");
}
}
private class receiver implements Runnable{
public void run(){
String s1 = null;
try{
s1 = in.readLine();
while(s1!= "client exit!"){
textArea1.append("client information: "+s1+"\n");
s1 = in.readLine();
}
in.close();
out.close();
socket.close();
server.close();
}catch(Exception e){}
button1.setEnabled(false); //客户端已退出,禁止发送消息
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -