📄 mainframe.java
字号:
package com.ict.netcom2.trash;
import java.awt.*;
import javax.swing.*;
import java.awt.BorderLayout;
import javax.swing.BorderFactory;
import java.awt.Color;
import javax.swing.border.Border;
import javax.swing.border.TitledBorder;
import java.awt.event.*;
import java.awt.Dimension;
import javax.swing.border.EtchedBorder;
@SuppressWarnings("serial")
public class MainFrame extends JFrame {
Server server;
Client client;
JPanel jPanel1 = new JPanel();
JScrollPane jScrollPane1 = new JScrollPane();
JTextField jTextField1 = new JTextField();
JButton sendButton = new JButton();
JTextArea jTextArea1 = new JTextArea();
Border border1 = BorderFactory.createLineBorder(Color.black, 2);
Border border2 = new TitledBorder(border1, "Server");
BorderLayout borderLayout2 = new BorderLayout();
Border border3 = BorderFactory.createLineBorder(Color.black, 2);
Border border4 = new TitledBorder(border3, "Client");
JPanel jPanel2 = new JPanel();
JScrollPane jScrollPane2 = new JScrollPane();
JTextArea jTextArea2 = new JTextArea();
GridLayout gridLayout1 = new GridLayout();
JPanel jPanel3 = new JPanel();
BorderLayout borderLayout1 = new BorderLayout();
GridLayout gridLayout2 = new GridLayout();
JPanel jPanel4 = new JPanel();
JPanel jPanel5 = new JPanel();
BorderLayout borderLayout3 = new BorderLayout();
JButton connectButton = new JButton();
JLabel jLabel1 = new JLabel();
JTextField clientIPField = new JTextField();
JPanel jPanel6 = new JPanel();
JPanel jPanel7 = new JPanel();
BorderLayout borderLayout5 = new BorderLayout();
JLabel jLabel2 = new JLabel();
JTextField clientPortField = new JTextField();
BorderLayout borderLayout4 = new BorderLayout();
BorderLayout borderLayout6 = new BorderLayout();
JPanel jPanel8 = new JPanel();
BorderLayout borderLayout7 = new BorderLayout();
JPanel jPanel9 = new JPanel();
JButton serverButton = new JButton();
JPanel jPanel12 = new JPanel();
JLabel jLabel3 = new JLabel();
JTextField serverPortField = new JTextField();
FlowLayout flowLayout1 = new FlowLayout();
public MainFrame() {
try {
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
}
private void jbInit() throws Exception {
border4 = new TitledBorder(BorderFactory.createEtchedBorder(
EtchedBorder.RAISED, Color.white, new Color(148, 145, 140)),
"Client");
border2 = new TitledBorder(BorderFactory.createEtchedBorder(
EtchedBorder.RAISED, Color.white, new Color(148, 145, 140)),
"Server");
getContentPane().setLayout(gridLayout1);
jPanel1.setBorder(border4);
jPanel2.setLayout(gridLayout2);
gridLayout1.setColumns(1);
gridLayout1.setRows(0);
jPanel3.setLayout(borderLayout1);
gridLayout2.setColumns(1);
gridLayout2.setRows(0);
jPanel4.setLayout(borderLayout3);
connectButton.setToolTipText("");
connectButton.setText("Connect");
jLabel1.setText(" IP: ");
clientIPField.setPreferredSize(new Dimension(120, 22));
clientIPField.setText("127.0.0.1");
jPanel7.setLayout(borderLayout4);
jPanel5.setLayout(borderLayout5);
jLabel2.setText(" Port: ");
clientPortField.setPreferredSize(new Dimension(60, 22));
clientPortField.setText("1111");
jPanel6.setLayout(borderLayout6);
sendButton.setText("Send");
sendButton.setEnabled(false);
jScrollPane1.setBorder(null);
jPanel1.setLayout(borderLayout2);
jPanel8.setLayout(borderLayout7);
serverButton.setText("Start");
jLabel3.setText("Port:");
serverPortField.setPreferredSize(new Dimension(64, 22));
serverPortField.setText("1111");
jPanel9.setLayout(flowLayout1);
jPanel8.setBorder(border2);
jScrollPane2.getViewport().add(jTextArea2);
jPanel1.add(jScrollPane2, java.awt.BorderLayout.CENTER);
jPanel1.add(jPanel2, java.awt.BorderLayout.SOUTH);
this.getContentPane().add(jPanel8);
jScrollPane1.getViewport().add(jTextArea1);
this.getContentPane().add(jPanel1, null);
jPanel3.add(jTextField1, java.awt.BorderLayout.CENTER);
jPanel3.add(sendButton, java.awt.BorderLayout.EAST);
jPanel2.add(jPanel3, null);
jPanel2.add(jPanel4);
jPanel4.add(jPanel5, java.awt.BorderLayout.CENTER);
jPanel4.add(connectButton, java.awt.BorderLayout.EAST);
jPanel5.add(jPanel7, java.awt.BorderLayout.CENTER);
jPanel5.add(jPanel6, java.awt.BorderLayout.EAST);
jPanel7.add(jLabel1, java.awt.BorderLayout.WEST);
jPanel7.add(clientIPField, java.awt.BorderLayout.CENTER);
jPanel6.add(jLabel2, java.awt.BorderLayout.WEST);
jPanel6.add(clientPortField, java.awt.BorderLayout.CENTER);
jPanel8.add(jScrollPane1, java.awt.BorderLayout.CENTER);
jPanel8.add(jPanel9, java.awt.BorderLayout.SOUTH);
jPanel12.add(jLabel3);
jPanel12.add(serverPortField);
jPanel12.add(serverButton);
jPanel9.add(jPanel12, null);
sendButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
send();
}
} );
connectButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
connect();
}
});
serverButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
startServer();
}
});
}
private String getInput() {
return jTextField1.getText().trim();
}
private void setClientInfo(String str) {
jTextArea2.append(str+"\n");
jTextArea2.setCaretPosition(jTextArea2.getDocument().getLength());
}
public void setServerInfo(String str) {
jTextArea1.append(str+"\n");
jTextArea1.setCaretPosition(jTextArea1.getDocument().getLength());
}
public void connect() {
if (connectButton.getText().equalsIgnoreCase("connect")) {
String ip = clientIPField.getText().trim();
int port = Integer.parseInt(clientPortField.getText().trim());
client = new Client(ip, port);
sendButton.setEnabled(true);
connectButton.setText("Disconnect");
}
else {
client.disconnect();
sendButton.setEnabled(false);
connectButton.setText("Connect");
}
}
public void send() {
String str = getInput();
if (str == null)
return;
client.send(str);
setClientInfo("[SEND] "+str);
String ack = client.receive();
setClientInfo("[RCV] "+ack);
}
public void startServer() {
if (serverButton.getText().equalsIgnoreCase("start")) {
int port = Integer.parseInt(serverPortField.getText().trim());
server = new Server(port, this);
server.start();
serverButton.setText("Stop");
}
else {
server.close();
serverButton.setText("Start");
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -