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

📄 clientframe.java

📁 是学习swing 开发的基本程序
💻 JAVA
字号:
package com.lu.cheng.xin.qq;



import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.Panel;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class ClientFrame extends JFrame {
//************************************主窗口元件建立
          JTextArea text = new JTextArea();//写文件区域
          JScrollPane sp = new JScrollPane(text);

          JTextField text2 = new JTextField(35);
          JButton button = new JButton("发送");
          JPanel jp= new JPanel();

          JMenuBar menuBar = new JMenuBar();//菜单栏
          JMenu fileMenu = new JMenu("聊天室");//菜单
          JMenuItem loginItem = new JMenuItem("登录");
          JMenuItem exitItem = new JMenuItem("退出");

          JMenu helpMenu = new JMenu("帮助");
          JMenuItem aboutItem = new JMenuItem("关于");

          ClientManager client = new ClientManager(this);
          ClientListener Cis = new ClientListener(this);
//*****************************构造器,建立窗口
 public ClientFrame(){
          this.setTitle("网络聊天--Client");
          this.setSize(480,320);
          this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

          loginItem.addActionListener(Cis);
          exitItem.addActionListener(Cis);
          aboutItem.addActionListener(Cis);
          button.addActionListener(Cis);


          fileMenu.add(loginItem);
          fileMenu.add(exitItem);

          helpMenu.add(aboutItem);

          menuBar.add(fileMenu);
          menuBar.add(helpMenu);

          jp.add(text2);
          jp.add(button);

          this.getContentPane().add(menuBar,BorderLayout.NORTH);
          this.getContentPane().add(sp);
          this.getContentPane().add(jp,BorderLayout.SOUTH);

          this.setVisible(true);
 }



        public static void main(String[] args) {
                new ClientFrame();
        }


//*********************************登录窗口
        public void loginItemClicked() {
                final JDialog jl = new JDialog(this,true);
                jl.setSize(320,140);

                Panel panel1 = new Panel();
                Panel panel2 = new Panel();
                Panel panel3 = new Panel();

                JLabel label1 = new JLabel("输入名字");
                final JTextField text1 = new JTextField(12);
                JLabel label0 = new JLabel("        ");

                JLabel label2 = new JLabel("服务器IP:");
                final JTextField text2 = new JTextField(12);
                JLabel label3 = new JLabel("端口:");
                final JTextField text3 = new JTextField(6);


                JButton button = new JButton("确定");
                JButton button1 = new JButton("重设");
     //****************增加一个登录窗口匿名监听器

            ActionListener cbs = new ActionListener() {//确定按钮button1监听

                        public void actionPerformed(ActionEvent e) {
                                JButton button = (JButton) e.getSource();
                                client.clientbox.set(text1.getText(),text2.getText(),text3.getText());//发送用户信息
                            try {
                                        client.clientbox.running();
                                } catch (Exception e1) {
                                }
                                jl.dispose();
                        }
            };
            ActionListener cbs2 = new ActionListener() {//取消按钮button2监听
                  public void actionPerformed(ActionEvent e) {
                        JButton button = (JButton) e.getSource();
                        text1.setText(null);
                        text2.setText(null);
                        text3.setText(null);
                 }
        };
                button.addActionListener(cbs);
                button1.addActionListener(cbs2);

                panel1.add(label1);
                panel1.add(text1);
                panel1.add(label0);

                panel2.add(label2);
                panel2.add(text2);
                panel2.add(label3);
                panel2.add(text3);

                panel3.add(button);
                panel3.add(button1);

                jl.setLayout(new GridLayout(3,1));
                jl.add(panel1);
                jl.add(panel2);
                jl.add(panel3);

                jl.setVisible(true);

        }
//*********************************************退出程序
        public void exitItemClicked() {
                client.exit();
                System.exit(0);
        }
//********************************************帮助窗口
        public void helpItemClicked() {
                JDialog about = new JDialog(this,true);//flase打开时父窗口能活动,true不能活动
                about.setSize(400,200);
                JLabel label = new JLabel("PiPi V1.0版,继续使用请付2000块钱!");
                about.getContentPane().add(label);
                about.setVisible(true);

        }
//**************************************发送按钮
        public void buttonClicket() throws Exception {
                client.send(text2.getText());
                this.text2.setText(null);

        }

}

//***********************************************主窗口监听器
class ClientListener implements ActionListener{
      ClientFrame frame = null;

        public  ClientListener(ClientFrame frame){
                this.frame = frame;
        }

        public void actionPerformed(ActionEvent e) {

            if(e.getSource()== frame.loginItem){
                        frame.loginItemClicked();
                }
                else if(e.getSource()==frame.exitItem){
                        frame.exitItemClicked();		}

                else if(e.getSource()==frame.aboutItem){
                        frame.helpItemClicked();
                }
                else if(e.getSource()==frame.button){
                        try {
                                frame.buttonClicket();
                        } catch (Exception e1) {
                                e1.printStackTrace();
                        }
                }
        }
}


⌨️ 快捷键说明

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