⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainframe2.java~39~

📁 远程登录程序
💻 JAVA~39~
字号:
package multiclientnew;

import java.awt.*;
import java.awt.event.*;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JScrollPane;
import java.awt.Rectangle;
import javax.swing.BorderFactory;
import javax.swing.border.EtchedBorder;
import javax.swing.border.Border;
import javax.swing.border.TitledBorder;
import javax.swing.JTextArea;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.*;
import java.net.*;
import java.io.*;

/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2007</p>
 *
 * <p>Company: </p>
 *
 * @author not attributable
 * @version 1.0
 */
public class MainFrame2 extends JFrame {
    DatagramSocket socket;
    byte[] buf =new byte[1000];
    DatagramPacket dp = new DatagramPacket(buf,buf.length);
    InetAddress serverHost;
    int serverPort;
    String name1;
    String name2;
    String strip;
    JPanel contentPane;
    JMenuBar jMenuBar1 = new JMenuBar();
    JMenu jMenuFile = new JMenu();
    JMenuItem jMenuFileExit = new JMenuItem();
    JMenu jMenuHelp = new JMenu();
    JMenuItem jMenuHelpAbout = new JMenuItem();
    JScrollPane jScrollPane1 = new JScrollPane();
    JScrollPane jScrollPane2 = new JScrollPane();
    Border border1 = BorderFactory.createEtchedBorder(EtchedBorder.RAISED,
            Color.white, new Color(165, 163, 151));
    Border border2 = new TitledBorder(border1, "Message");
    JTextArea jTextArea1 = new JTextArea();
    JTextArea jTextArea2 = new JTextArea();
    JButton jButton1 = new JButton();
    JButton jButton2 = new JButton();
    JLabel jLabel1 = new JLabel();
    JLabel jLabel2 = new JLabel();
    JLabel jLabel3 = new JLabel();
    public MainFrame2(String ip1,int dk) {
        strip = ip1;
        serverPort = dk;
       // System.out.println(name);
      //  System.out.println(ip);
    //  jTextArea1.append(name+ip);
        try {
            setDefaultCloseOperation(EXIT_ON_CLOSE);
            serverSet();
            jbInit();
        } catch (Exception exception) {
            exception.printStackTrace();
        }
    }
    class ReadMessageThread extends Thread{
        public void run(){
            while(true){
                try{
                    socket.receive(dp);
                }catch(IOException e1){
                    jTextArea1.append("读端口信息出错\n");
                }
                String rcvd = new String(dp.getData(),0,dp.getLength());
                InetAddress ip = dp.getAddress();
                int port = dp.getPort();
                rcvd = rcvd+",from address"+ip+",port:"+port;
                jTextArea1.append(ip+"\n"+rcvd+"\n");
            }
        }
    }
    public void serverSet(){
        try{
            socket =new DatagramSocket(serverPort);
            jTextArea1.append("服务器数据报建立\n");
        }catch(IOException e){
           jTextArea1.append("服务器端口出错\n ");
        }
        try{
            serverHost = InetAddress.getByName(strip);
        }catch(IOException e){
            jTextArea1.append("iP地址出错\n ");
        }
        if(socket != null){
            ReadMessageThread readThread =new ReadMessageThread();
            readThread.start();
        }
    }

    /**
     * Component initialization.
     *
     * @throws java.lang.Exception
     */
    private void jbInit() throws Exception {
        border2 = new TitledBorder(BorderFactory.createEtchedBorder(
                EtchedBorder.RAISED, Color.white, new Color(148, 145, 140)),
                                   "Message");
        contentPane = (JPanel) getContentPane();
        contentPane.setLayout(null);
        setSize(new Dimension(470, 450));
        setTitle("Frame Title");
        jMenuFile.setText("File");
        jMenuFileExit.setText("Exit");
        jMenuFileExit.addActionListener(new
                                        MainFrame2_jMenuFileExit_ActionAdapter(this));
        jMenuHelp.setText("Help");
        jMenuHelpAbout.setText("About");
        jMenuHelpAbout.addActionListener(new
                                         MainFrame2_jMenuHelpAbout_ActionAdapter(this));
        jScrollPane1.setHorizontalScrollBarPolicy(JScrollPane.
                                                  HORIZONTAL_SCROLLBAR_ALWAYS);
        jScrollPane1.setVerticalScrollBarPolicy(JScrollPane.
                                                VERTICAL_SCROLLBAR_ALWAYS);
        jScrollPane1.setBorder(border2);
        jScrollPane1.setBounds(new Rectangle(18, 34, 433, 174));
        jScrollPane2.setHorizontalScrollBarPolicy(JScrollPane.
                                                  HORIZONTAL_SCROLLBAR_ALWAYS);
        jScrollPane2.setVerticalScrollBarPolicy(JScrollPane.
                                                VERTICAL_SCROLLBAR_ALWAYS);
        jScrollPane2.setBorder(border2);
        jScrollPane2.setBounds(new Rectangle(18, 218, 433, 138));
        jButton1.setBounds(new Rectangle(367, 366, 84, 27));
        jButton1.setText("发送");
        jButton1.addActionListener(new MainFrame2_jButton1_actionAdapter(this));
        jButton2.setBounds(new Rectangle(30, 9, 84, 24));
        jButton2.setText("传输文件");
        jLabel1.setHorizontalAlignment(SwingConstants.RIGHT);
        jLabel1.setHorizontalTextPosition(SwingConstants.CENTER);
        jLabel1.setText("A");
        jLabel1.setBounds(new Rectangle(229, 9, 68, 23));
        jLabel2.setText("Chat with");
        jLabel2.setBounds(new Rectangle(322, 9, 75, 21));
        jLabel3.setText("chat with");
        jLabel3.setHorizontalAlignment(SwingConstants.LEFT);
        jLabel3.setBounds(new Rectangle(388, 9, 62, 24));
        jMenuBar1.add(jMenuFile);
        jMenuFile.add(jMenuFileExit);
        jMenuBar1.add(jMenuHelp);
        jMenuHelp.add(jMenuHelpAbout);
        contentPane.add(jButton2);
        contentPane.add(jScrollPane1);
        contentPane.add(jScrollPane2);
        contentPane.add(jButton1);
        contentPane.add(jLabel1);
        contentPane.add(jLabel3);
        contentPane.add(jLabel2);
        jScrollPane2.getViewport().add(jTextArea2);
        jScrollPane1.getViewport().add(jTextArea1);
        setJMenuBar(jMenuBar1);
        jLabel1.setText(name1);
        jLabel3.setText(name2);
    }

    /**
     * File | Exit action performed.
     *
     * @param actionEvent ActionEvent
     */
    void jMenuFileExit_actionPerformed(ActionEvent actionEvent) {
        System.exit(0);
    }

    /**
     * Help | About action performed.
     *
     * @param actionEvent ActionEvent
     */
    void jMenuHelpAbout_actionPerformed(ActionEvent actionEvent) {
        MainFrame2_AboutBox dlg = new MainFrame2_AboutBox(this);
        Dimension dlgSize = dlg.getPreferredSize();
        Dimension frmSize = getSize();
        Point loc = getLocation();
        dlg.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x,
                        (frmSize.height - dlgSize.height) / 2 + loc.y);
        dlg.setModal(true);
        dlg.pack();
        dlg.setVisible(true);
    }

    public void jButton1_actionPerformed(ActionEvent e) {
        if(socket!=null){
            byte[] buf2 = new byte[1000];
            String str= jTextArea2.getText();
            jTextArea1.append("Selfe\n"+str+"\n");
            buf2 = str.getBytes();
            dp =new DatagramPacket(buf2,buf2.length,serverHost,serverPort);
            try{
                socket.send(dp);
            }catch(IOException e3){
                jTextArea1.append("发送消息出错\n");
            }
        }
        jTextArea2.setText("");
    }
}


class MainFrame2_jButton1_actionAdapter implements ActionListener {
    private MainFrame2 adaptee;
    MainFrame2_jButton1_actionAdapter(MainFrame2 adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent e) {
        adaptee.jButton1_actionPerformed(e);
    }
}


class MainFrame2_jMenuFileExit_ActionAdapter implements ActionListener {
    MainFrame2 adaptee;

    MainFrame2_jMenuFileExit_ActionAdapter(MainFrame2 adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent actionEvent) {
        adaptee.jMenuFileExit_actionPerformed(actionEvent);
    }
}


class MainFrame2_jMenuHelpAbout_ActionAdapter implements ActionListener {
    MainFrame2 adaptee;

    MainFrame2_jMenuHelpAbout_ActionAdapter(MainFrame2 adaptee) {
        this.adaptee = adaptee;
    }

    public void actionPerformed(ActionEvent actionEvent) {
        adaptee.jMenuHelpAbout_actionPerformed(actionEvent);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -