📄 sjf.java
字号:
package dianduidian;import java.awt.BorderLayout;import java.awt.FlowLayout;import java.awt.Point;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.net.ServerSocket;import java.net.Socket;import javax.swing.JButton;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTextArea;import javax.swing.JTextField;import javax.swing.WindowConstants;public class SJF extends javax.swing.JFrame { { //Set Look & Feel try { javax.swing.UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsClassicLookAndFeel"); } catch(Exception e) { e.printStackTrace(); } } private JPanel jPanelN; private JTextField tsend; private JButton bsend; private JScrollPane jScrollPane1; private JPanel jPanelS; private JTextArea show; private JLabel jLabel1; private JButton ac; private JTextField port; /** * Auto-generated main method to display this JFrame */ public static void main(String[] args) { SJF inst = new SJF(); inst.setVisible(true); } public SJF() { super(); initGUI(); } private void initGUI() { try { setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); this.setFocusTraversalKeysEnabled(false); this.setTitle("\u670d\u52a1\u5668\u7aef\u7a0b\u5e8f"); { jPanelS = new JPanel(); getContentPane().add(jPanelS, BorderLayout.SOUTH); FlowLayout jPanelSLayout = new FlowLayout(); jPanelSLayout.setAlignment(FlowLayout.RIGHT); jPanelS.setLayout(jPanelSLayout); { tsend = new JTextField(); jPanelS.add(tsend); tsend.setSize(32, 20); tsend.setPreferredSize(new java.awt.Dimension(230, 20)); } { bsend = new JButton(); jPanelS.add(bsend); bsend.setText("\u53d1\u9001\u4fe1\u606f"); bsend.setEnabled(false); bsend.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { bsendActionPerformed(evt); } }); } } { jScrollPane1 = new JScrollPane(); getContentPane().add(jScrollPane1, BorderLayout.CENTER); { show = new JTextArea(); jScrollPane1.setViewportView(show);// show.setPreferredSize(new java.awt.Dimension(390, 159)); } } { jPanelN = new JPanel(); FlowLayout jPanelNLayout = new FlowLayout(); jPanelNLayout.setAlignment(FlowLayout.RIGHT); jPanelN.setLayout(jPanelNLayout); getContentPane().add(jPanelN, BorderLayout.NORTH); { jLabel1 = new JLabel(); jPanelN.add(jLabel1); jLabel1.setText("\u7aef\u53e3"); } { port = new JTextField(); jPanelN.add(port); port.setPreferredSize(new java.awt.Dimension(37, 20)); } { ac = new JButton(); jPanelN.add(ac); ac.setText("\u7b49\u5f85\u8fde\u63a5"); ac.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { acActionPerformed(evt); } }); } } pack(); setSize(400, 300); } catch (Exception e) { e.printStackTrace(); } } /** * 处理 发送信息 按钮时的方法 * @param evt */ private void bsendActionPerformed(ActionEvent evt) { //TODO wd.Write(tsend.getText()); int height = 20; Point p = new Point(); p.setLocation(0, show.getLineCount() * height); jScrollPane1.getViewport().setViewPosition(p); show.append(tsend.getText()+"\n"); } ServerSocket ss=null; //等待客户连接 Socket s=null; //建立连接,并且可以得到 in,out BufferedReader br=null; // 用来读数据的 BufferedWriter bw=null; // 用来写数据的 WriteData wd=null; ReadThr rt=null; /** * 当点击,等待连接 按钮时的处理方法 * @param evt */ private void acActionPerformed(ActionEvent evt) { Ac ac=new Ac(); ac.start(); } class Ac extends Thread{ @Override public void run() { //TODO try {show.append("等待客户连接"+"\n"); ss=new ServerSocket(Integer.parseInt(port.getText().trim())); //建立一个ServerSocket连接 show.show(); s=ss.accept(); show.append("客户::"+s.getInetAddress()+"已经连接"); br=new BufferedReader(new InputStreamReader(s.getInputStream())); bw=new BufferedWriter(new OutputStreamWriter(s.getOutputStream())); bsend.setEnabled(true); //启动读数据的线程,并设置为 后台线程 rt=new ReadThr(br,show,jScrollPane1); rt.setDaemon(true); rt.start(); wd=new WriteData(bw); } catch (IOException e) { show.append(e+"\n"); //显示异常信息 } } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -