📄 chatapplet.java
字号:
import java.awt.Toolkit;import javax.swing.SwingUtilities;import javax.swing.UIManager;import java.awt.Dimension;import java.lang.Object;import java.awt.BorderLayout;import java.awt.Dimension;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.KeyEvent;import java.io.PrintWriter;import javax.swing.BorderFactory;import javax.swing.JApplet;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTextArea;import javax.swing.JTextField;import javax.swing.UIManager;import javax.swing.border.Border;class chat { boolean packFrame = false; /** * Construct and show the application. */ public chat() { chat_client frame = new chat_client(); // Validate frames that have preset sizes // Pack frames that have useful preferred size info, e.g. from their layout if (packFrame) { frame.pack(); } else { frame.validate(); } // Center the window Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Dimension frameSize = frame.getSize(); if (frameSize.height > screenSize.height) { frameSize.height = screenSize.height; } if (frameSize.width > screenSize.width) { frameSize.width = screenSize.width; } frame.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2); frame.setVisible(true); try { jbInit1(); } catch (Exception ex) { ex.printStackTrace(); } } private void jbInit1() throws Exception { }} public class ChatApplet extends JApplet { public static String hostname=null; boolean result; boolean isStandalone = false; BorderLayout borderLayout1 = new BorderLayout(); Border border1; JPanel jPanel2 = new JPanel(); Border border2; BorderLayout borderLayout2 = new BorderLayout(); JPanel jPanel1 = new JPanel(); JButton buttonSend = new JButton(); JButton buttonClose = new JButton(); BorderLayout borderLayout3 = new BorderLayout(); JPanel jPanel3 = new JPanel(); Border border3; BorderLayout borderLayout4 = new BorderLayout(); JTextField textTalk = new JTextField("请输入聊天信息"); JPanel jPanel4 = new JPanel(); Border border4; BorderLayout borderLayout5 = new BorderLayout(); JScrollPane jScrollPane1 = new JScrollPane(); JTextArea textMessages = new JTextArea(); PrintWriter out = null; /**Get a parameter value*/ public String getParameter(String key, String def) { return isStandalone ? System.getProperty(key, def) : (getParameter(key) != null ? getParameter(key) : def); } /**Construct the applet*/ JFrame frame; void set_frame(JFrame frame){this.frame=frame;} JFrame get_frame(){return this.frame;} public ChatApplet(String hostname) { this.hostname=hostname; //ChatApplet applet = new ChatApplet(); this.isStandalone = true; JFrame frame = new JFrame(); frame.setDefaultCloseOperation(3); frame.setTitle("客户端聊天"); frame.getContentPane().add(this, BorderLayout.CENTER); this.init(); this.start(); frame.setSize(400,320); Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); frame.setLocation((d.width - frame.getSize().width) / 2, (d.height - frame.getSize().height) / 2); frame.setVisible(true); set_frame(frame); } /**Initialize the applet*/ public void init() { try { jbInit(); Client client = new Client(this); if (client.isConnected()) { out = client.getOutputStream(); appendMessage("恭喜恭喜连接成功!\n"); out.println("欢迎"+hostname+"到来\n"); } else {appendMessage("连接失败,没有输入IP或着IP有误,请检查网络设备!"); buttonSend.setVisible(false); jPanel1.add(buttonClose, BorderLayout.EAST); buttonClose.setFocusPainted(false); buttonClose.setText("关闭"); buttonClose.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e){ buttonClose_actionPerformed(e); } }); } } catch(Exception e) { e.printStackTrace(); } } /**Component initialization*/ private void jbInit() throws Exception { border1 = BorderFactory.createEmptyBorder(9,9,9,9); border2 = BorderFactory.createEmptyBorder(9,9,9,9); border3 = BorderFactory.createEmptyBorder(2,0,2,5); border4 = BorderFactory.createEmptyBorder(0,0,5,0); this.setSize(new Dimension(400,300)); this.getContentPane().setLayout(borderLayout1); jPanel2.setBorder(border2); jPanel2.setLayout(borderLayout2); buttonSend.setFocusPainted(false); buttonSend.setText("发 送"); buttonSend.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e){ buttonSend_actionPerformed(e); } }); jPanel1.setLayout(borderLayout3); jPanel3.setBorder(border3); jPanel3.setLayout(borderLayout4); jPanel4.setBorder(border4); jPanel4.setLayout(borderLayout5); textTalk.addKeyListener(new java.awt.event.KeyAdapter() { public void keyPressed(KeyEvent e) { textTalk_keyPressed(e); } }); this.getContentPane().add(jPanel2, BorderLayout.CENTER); jPanel2.add(jPanel1, BorderLayout.SOUTH); jPanel1.add(buttonSend, BorderLayout.EAST); jPanel1.add(jPanel3, BorderLayout.CENTER); jPanel3.add(textTalk, BorderLayout.CENTER); jPanel2.add(jPanel4, BorderLayout.CENTER); jPanel4.add(jScrollPane1, BorderLayout.CENTER); jScrollPane1.getViewport().add(textMessages, null); } /**Get Applet information*/ public String getAppletInfo() { return "Applet Information"; } /**Get parameter info*/ public String[][] getParameterInfo() { return null; } /**Main method*/ public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { try { UIManager.setLookAndFeel(UIManager. getSystemLookAndFeelClassName()); } catch (Exception exception) { exception.printStackTrace(); } new chat(); } }); } static { try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch(Exception e) { System.out.print(e.getMessage()); } } public void appendMessage(String message) { textMessages.setText(message + textMessages.getText()); } void buttonSend_actionPerformed(ActionEvent e) { String msg; msg = textTalk.getText().trim(); if (msg.equals("") || msg == null) return ; // out.println(hostname+":"+textTalk.getText()); out.println(hostname+":"+msg); textTalk.setText(""); } void buttonClose_actionPerformed(ActionEvent e) { get_frame().dispose(); } void textTalk_keyPressed(KeyEvent e) { if (e.getKeyChar() != '\n') return; out.println(hostname+":"+textTalk.getText()); textTalk.setText(""); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -