📄 clientframe.java
字号:
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class ClientFrame extends JFrame implements ActionListener{
JButton sendButton;
JTextField inputField;
JTextArea outputArea;
SimpleClient client;
JButton exitButton;
//在构造函数中完成图形界面的初始化
public ClientFrame(){
JLabel label1=new JLabel("输入:");
inputField=new JTextField(20);
JPanel panel1=new JPanel();
panel1.add(label1);
panel1.add(inputField);
JLabel label2=new JLabel("服务器返回:");
outputArea=new JTextArea(6,20);
JScrollPane scrollPane=new JScrollPane(outputArea);
JPanel panel2=new JPanel();
panel2.setLayout(new BorderLayout());
panel2.add(label2,BorderLayout.NORTH);
panel2.add(scrollPane,BorderLayout.CENTER);
sendButton=new JButton("发送");
sendButton.addActionListener(this);
exitButton=new JButton("退出");
exitButton.addActionListener(this);
JPanel panel=new JPanel();
panel.setLayout(new BorderLayout());
panel.add(panel1,BorderLayout.NORTH);
panel.add(sendButton,BorderLayout.CENTER);
panel.add(exitButton,BorderLayout.EAST);
panel.add(panel2,BorderLayout.PAGE_END);
setTitle("Socket客户端");
this.getContentPane().add(panel);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent ae){
//判断事件源空间是否是发送按钮
if(ae.getSource() == sendButton){
try{
client.sendRequest(inputField.getText());
}catch(Exception ex){
ex.printStackTrace();
}
outputArea.append(client.getReponse()+"\n");
}
if(ae.getSource()== exitButton){
outputArea.append("要退出了\n");
// this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//sendButton.hide();
}
}
public static void main(String args[]){
ClientFrame frame=new ClientFrame();
frame.pack();
frame.client=new SimpleClient("127.0.0.1",8888);
frame.setVisible(true);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -