📄 mainform.java
字号:
package chat;import java.awt.*;import java.awt.event.*;import javax.swing.*;import com.borland.jbcl.layout.*;import javax.swing.border.*;import java.lang.Exception;import java.net.*;import java.io.*;import java.util.Date;import javax.swing.event.*;/** * <p>Title: 使用JAVA制作的局域网聊天程序</p> * <p>Description: 我们的JAVA作业</p> * <p>Copyright: Copyright (c) 2003</p> * <p>Company: </p> * @author RoadAhead * @version 1.0 */public class mainform extends JFrame{ private JPanel contentPane; static JPanel jPanel1 = new JPanel(); private JPanel jPanel2 = new JPanel(); private JButton but_online = new JButton(); private BorderLayout borderLayout2 = new BorderLayout(); private JMenuBar jMenuBar1 = new JMenuBar(); static JSplitPane jsp8 = new JSplitPane(); private JPanel jPanel5 = new JPanel(); private JButton but_exit = new JButton(); private JMenu jMenu1 = new JMenu(); private JButton but_offline = new JButton(); private JButton but_about = new JButton(); private JPanel pan_state = new JPanel(); static JTextPane ed_input = new JTextPane(); private PaneLayout paneLayout1 = new PaneLayout(); private TitledBorder titledBorder1; private TitledBorder titledBorder2; static Label lab_uname = new Label(); static JLabel lab_uimage = new JLabel(); private JLabel jLabel2 = new JLabel(); private JLabel lab_info = new JLabel(); static final int PORT=5001; static String curuserip=""; static String curusername=""; static String curusericon=""; static String myname=""; static String myicon=""; static String myip; static String onstartset=""; static String filename="chatset.amy"; static String winstate="0"; static int maxStrCount=10000; static int onlinestate=2;//是否在线 1: 在线 2:断线 3: 离线 static String onofflinetime=""; //当离线时的回答 private JButton but_setup = new JButton(); static String[][] userlist;//用户列表 static JButton[] but_userlist; //用户图象按钮 private JScrollPane jsp = new JScrollPane(); static JPanel pan_userlist = new JPanel(); private TitledBorder titledBorder3; private PaneLayout paneLayout2 = new PaneLayout(); static JLabel lab_my = new JLabel(); private TitledBorder titledBorder4; newthread mythread=new newthread(); static DatagramPacket sendpacket,receivepacket; static DatagramSocket sendsocket,receivesocket; private JScrollPane jScrollPane1 = new JScrollPane(); static JTextArea ed_show = new JTextArea(); private JCheckBox cbo_bc = new JCheckBox(); private JScrollPane jScrollPane2 = new JScrollPane(); JOptionPane pane = new JOptionPane(); Date nowtime=new Date(); private JPopupMenu pop_menu = new JPopupMenu(); private JMenuItem jMenuItem1 = new JMenuItem(); private JMenuItem jMenuItem2 = new JMenuItem(); private JButton but_pause = new JButton(); private BoxLayout2 boxLayout21 = new BoxLayout2(); private Label label1 = new Label(); private Label label2 = new Label(); private BorderLayout borderLayout1 = new BorderLayout(); VerticalFlowLayout verticalFlowLayout1 = new VerticalFlowLayout(); //Construct the frame public mainform() { enableEvents(AWTEvent.WINDOW_EVENT_MASK); try { jbInit(); } catch(Exception e) { e.printStackTrace(); } } //Component initialization private void jbInit() throws Exception { try{ sendsocket=new DatagramSocket(); receivesocket=new DatagramSocket(5001); } catch(SocketException se){ se.printStackTrace(); } mainform.userlist=new String[1][5]; but_userlist=new JButton [1]; //setIconImage(Toolkit.getDefaultToolkit().createImage(mainform.class.getResource("[Your Icon]"))); contentPane = (JPanel) this.getContentPane(); titledBorder1 = new TitledBorder(""); titledBorder2 = new TitledBorder(""); titledBorder3 = new TitledBorder(""); titledBorder4 = new TitledBorder(""); contentPane.setLayout(borderLayout1); this.setSize(new Dimension(523, 356)); this.setTitle("我们的聊天程序 Alt+Enter 发送消息"); this.addWindowListener(new java.awt.event.WindowAdapter() { public void windowOpened(WindowEvent e) { this_windowOpened(e); } public void windowActivated(WindowEvent e) { } }); jPanel1.setBackground(Color.white); jPanel1.setLayout(borderLayout2); jPanel2.setBackground(Color.white); jPanel2.setBorder(titledBorder4); jPanel2.setToolTipText(""); jPanel2.setLayout(paneLayout2); but_online.setBackground(Color.white); but_online.setFont(new java.awt.Font("Serif", 0, 12)); but_online.setBorder(null); but_online.setHorizontalTextPosition(SwingConstants.CENTER); but_online.setText("在线"); but_online.setVerticalAlignment(SwingConstants.BOTTOM); but_online.setVerticalTextPosition(SwingConstants.BOTTOM); but_online.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseExited(MouseEvent e) { but_online_mouseExited(e); } }); but_online.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() { public void mouseMoved(MouseEvent e) { but_online_mouseMoved(e); } }); but_online.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { but_online_actionPerformed(e); } }); jsp8.setBorder(null); jsp8.setContinuousLayout(true); jsp8.setDividerSize(2); jsp8.setLeftComponent(pan_userlist); but_exit.setBackground(Color.white); but_exit.setFont(new java.awt.Font("Serif", 0, 12)); but_exit.setBorder(null); but_exit.setHorizontalTextPosition(SwingConstants.CENTER); but_exit.setText("退出"); but_exit.setVerticalAlignment(SwingConstants.BOTTOM); but_exit.setVerticalTextPosition(SwingConstants.BOTTOM); but_exit.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() { public void mouseMoved(MouseEvent e) { but_exit_mouseMoved(e); } }); but_exit.addMouseListener(new java.awt.event.MouseAdapter() { public void mousePressed(MouseEvent e) { but_exit_mousePressed(e); } public void mouseExited(MouseEvent e) { but_exit_mouseExited(e); } }); but_exit.addKeyListener(new java.awt.event.KeyAdapter() { public void keyTyped(KeyEvent e) { but_exit_keyTyped(e); } }); jMenu1.setText("文件"); but_offline.setBackground(Color.white); but_offline.setFont(new java.awt.Font("Serif", 0, 12)); but_offline.setBorder(null); but_offline.setHorizontalTextPosition(SwingConstants.CENTER); but_offline.setText("断线"); but_offline.setVerticalAlignment(SwingConstants.BOTTOM); but_offline.setVerticalTextPosition(SwingConstants.BOTTOM); but_offline.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseExited(MouseEvent e) { but_offline_mouseExited(e); } }); but_offline.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() { public void mouseMoved(MouseEvent e) { but_offline_mouseMoved(e); } }); but_offline.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { but_offline_actionPerformed(e); } }); but_about.setBackground(Color.white); but_about.setFont(new java.awt.Font("Serif", 0, 12)); but_about.setBorder(null); but_about.setHorizontalTextPosition(SwingConstants.CENTER); but_about.setText("关于这个程序"); but_about.setVerticalAlignment(SwingConstants.BOTTOM); but_about.setVerticalTextPosition(SwingConstants.BOTTOM); but_about.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseExited(MouseEvent e) { but_about_mouseExited(e); } }); but_about.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() { public void mouseMoved(MouseEvent e) { but_about_mouseMoved(e); } }); but_about.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { but_about_actionPerformed(e); } }); jPanel5.setLayout(paneLayout1); pan_state.setBackground(Color.orange); pan_state.setBorder(BorderFactory.createEtchedBorder()); pan_state.setLayout(boxLayout21); contentPane.setFont(new java.awt.Font("Serif", 0, 12)); contentPane.setBorder(BorderFactory.createLineBorder(Color.black)); jLabel2.setBackground(Color.orange); jLabel2.setFont(new java.awt.Font("Serif", 0, 12)); jLabel2.setText(" "); ed_input.addKeyListener(new java.awt.event.KeyAdapter() { public void keyReleased(KeyEvent e) { } public void keyTyped(KeyEvent e) { ed_input_keyTyped(e); } }); but_setup.setBackground(Color.white); but_setup.setFont(new java.awt.Font("Serif", 0, 12)); but_setup.setBorder(null); but_setup.setHorizontalTextPosition(SwingConstants.CENTER); but_setup.setText("设置"); but_setup.setVerticalAlignment(SwingConstants.BOTTOM); but_setup.setVerticalTextPosition(SwingConstants.BOTTOM); but_setup.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseExited(MouseEvent e) { but_setup_mouseExited(e); } }); but_setup.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() { public void mouseMoved(MouseEvent e) { but_setup_mouseMoved(e); } }); but_setup.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { but_setup_actionPerformed(e); } }); jsp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); jsp.setMinimumSize(new Dimension(50, 50)); pan_userlist.setBackground(Color.white); pan_userlist.setMinimumSize(new Dimension(60, 60)); pan_userlist.setLayout(verticalFlowLayout1); lab_my.setBackground(Color.white); lab_my.setHorizontalAlignment(SwingConstants.CENTER); lab_my.setHorizontalTextPosition(SwingConstants.CENTER); lab_my.setVerticalAlignment(SwingConstants.BOTTOM); lab_my.setVerticalTextPosition(SwingConstants.BOTTOM); cbo_bc.setBackground(Color.orange); cbo_bc.setFont(new java.awt.Font("Serif", 0, 12)); cbo_bc.setText("广播方式"); ed_show.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseReleased(MouseEvent e) { ed_show_mouseReleased(e); } }); jMenuItem1.setText("清除内容"); jMenuItem1.addMenuKeyListener(new javax.swing.event.MenuKeyListener() { public void menuKeyTyped(MenuKeyEvent e) { } public void menuKeyPressed(MenuKeyEvent e) { } public void menuKeyReleased(MenuKeyEvent e) { jMenuItem1_menuKeyReleased(e); } }); jMenuItem2.setText("保存到文件"); jMenuItem2.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseReleased(MouseEvent e) { jMenuItem2_mouseReleased(e); } }); but_pause.setBackground(Color.white); but_pause.setFont(new java.awt.Font("Serif", 0, 12)); but_pause.setBorder(null); but_pause.setHorizontalTextPosition(SwingConstants.CENTER); but_pause.setText("离线"); but_pause.setVerticalAlignment(SwingConstants.BOTTOM); but_pause.setVerticalTextPosition(SwingConstants.BOTTOM); but_pause.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() { public void mouseMoved(MouseEvent e) { but_pause_mouseMoved(e); } }); but_pause.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseExited(MouseEvent e) { but_pause_mouseExited(e); } }); but_pause.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { but_pause_actionPerformed(e); } }); label1.setFont(new java.awt.Font("Serif", 0, 12)); label1.setText(" "); ed_show.setFont(new java.awt.Font("SansSerif", 0, 12)); ed_input.setFont(new java.awt.Font("Serif", 0, 12)); lab_uname.setFont(new java.awt.Font("Serif", 0, 12)); lab_uimage.setFont(new java.awt.Font("Serif", 0, 12)); lab_info.setFont(new java.awt.Font("Dialog", 0, 12)); contentPane.add(jPanel1, BorderLayout.CENTER); jPanel1.add(jsp8, BorderLayout.CENTER); jsp8.add(jPanel5, JSplitPane.RIGHT); contentPane.add(jPanel2, BorderLayout.NORTH); jMenuBar1.add(jMenu1); pan_state.add(jLabel2, null); pan_state.add(lab_uname, null); pan_state.add(lab_uimage, null); pan_state.add(lab_info, null); pan_state.add(label1, null); pan_state.add(cbo_bc, null); jsp8.add(jsp, JSplitPane.LEFT); jsp.getViewport().add(pan_userlist, null); jScrollPane1.getViewport().add(ed_show, null); jScrollPane2.getViewport().add(ed_input, null); pop_menu.add(jMenuItem1); pop_menu.add(jMenuItem2); jPanel2.add(but_online, new PaneConstraints("but_online", "but_online", PaneConstraints.ROOT, 0.5f)); jPanel2.add(but_offline, new PaneConstraints("but_offonline", "but_online", PaneConstraints.RIGHT, 0.87860084f)); jPanel2.add(but_setup, new PaneConstraints("but_set", "but_offonline", PaneConstraints.RIGHT, 0.72196263f)); jPanel2.add(but_pause, new PaneConstraints("jButton1", "but_offonline", PaneConstraints.LEFT, 0.5f)); jPanel2.add(but_about, new PaneConstraints("but_about", "but_set", PaneConstraints.RIGHT, 0.8039867f)); jPanel2.add(but_exit, new PaneConstraints("but_exit", "but_about", PaneConstraints.RIGHT, 0.76033056f)); jPanel2.add(lab_my, new PaneConstraints("jLabel1", "but_exit", PaneConstraints.RIGHT, 0.6683938f)); jPanel2.add(label2, new PaneConstraints("label2", "jLabel1", PaneConstraints.LEFT, 0.380597f)); jPanel5.add(pan_state, new PaneConstraints("jPanel3", "jPanel3", PaneConstraints.ROOT, 0.5f)); jPanel5.add(jScrollPane1, new PaneConstraints("jScrollPane1", "jPanel3", PaneConstraints.TOP, 0.66549295f)); jPanel5.add(jScrollPane2, new PaneConstraints("jScrollPane2", "jPanel3", PaneConstraints.BOTTOM, 0.47761196f)); Icon icon1=new ImageIcon("online.gif"); Icon icon2=new ImageIcon("offline.gif"); Icon icon3=new ImageIcon("setup.gif"); Icon icon4=new ImageIcon("about.gif"); Icon icon5=new ImageIcon("exit.gif"); Icon iconlk=new ImageIcon("lk.gif"); Icon iconfh=new ImageIcon("fh.gif"); but_online.setIcon(icon1); but_offline.setIcon(icon2); but_setup.setIcon(icon3); but_about.setIcon(icon4); but_exit.setIcon(icon5); but_pause.setIcon(iconlk); try { InetAddress localHost=InetAddress.getLocalHost(); myip=localHost.getHostAddress(); } catch(Exception aa) { } } //Overridden so we can exit when window is closed protected void processWindowEvent(WindowEvent e) { super.processWindowEvent(e); if (e.getID() == WindowEvent.WINDOW_CLOSING) { System.exit(0); } }//end procedure
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -