精华内容
下载资源
问答
  • JAVA利用多线程和Socket实现的在线聊天室,利用GUI制作用户界面,服务器端:可踢人,管理员私聊,发布系统消息,群聊,客户端:私聊,屏蔽,群聊。
  • 大四期末大作业,精心做的gui界面,带连通的数据库。界面精美,可移植性高。已经用这交了好几份作业了,特地来造福人类
  • 本程序是一个GUI界面的日历记事本,本系统将日历、记事本功能结合在一起,用户可以方便的在任何日期记录下有关的内容或查看某个日期的记录内容。
  • 文章目录Java聊天室项目GUI界面化实现(Java聊天室 IO流 Socket流 GUI界面 )1.Java聊天室 IO流 Socket流 GUI界面 服务端功能及页面介绍2.Java聊天室 IO流 Socket流 GUI界面 客户端功能及页面介绍3.Java聊天室 IO流 ...

    Java聊天室项目GUI界面化实现(Java聊天室 IO流 Socket流 GUI界面 )

    文章目录

    1.Java聊天室 IO流 Socket流 GUI界面 服务端功能及页面介绍

    2.Java聊天室 IO流 Socket流 GUI界面 客户端功能及页面介绍

    3.Java聊天室 IO流 Socket流 GUI界面 工具类Utils代码及解释(FileUtils文件发送的工具类Utils PathUtils是设置背景图片的图片路径Utils工具类

    4.Java聊天室 IO流 Socket流 GUI界面 枚举与包装消息内容代码及详解User里存放的是将需要传递的内容整体打包为一个对象 然后分开读取 Net里存放的是服务端的消息类型枚举

    5.Java聊天室 IO流 Socket流 GUI界面 服务端主界面代码及功能详解

    6.Java聊天室 IO流 Socket流 GUI界面 服务端的RegisterUserThread线程与ServerReadMsgThread消息读取线程

    7.Java聊天室 IO流 Socket流 GUI界面 客户端MainView界面详解

    8.Java聊天室 IO流 Socket流 GUI界面 客户端RegisterView界面详解

    9.Java聊天室 IO流 Socket流 GUI界面 客户端FunctionView界面详解

    10.Java聊天室 IO流 Socket流 GUI界面 客户端ClientReadMsgThread消息读取进程详解

    11.Java聊天室 IO流 Socket流 GUI界面 客户端TiShi界面详解

    12.Java聊天室 IO流 Socket流 GUI界面 客户端DeleteCompoent界面详解

    13.Java聊天室 IO流 Socket流 GUI界面 客户端下线功能

    14.Java聊天室 IO流 Socket流 GUI界面 客户端ChaXunCompoent界面详解

    15.Java聊天室 IO流 Socket流 GUI界面 客户端YinShenCompoent界面详解

    16.Java聊天室 IO流 Socket流 GUI界面 客户端WenJianconpoent界面详解

    17.Java聊天室 IO流 Socket流 GUI界面 客户端PublicCompoent界面详解

    18.Java聊天室 IO流 Socket流 GUI界面 客户端UserManageCompoent界面详解

    19.Java聊天室 IO流 Socket流 GUI界面 客户端ShangXiaCompoent界面详解

    20.Java聊天室 IO流 Socket流 GUI界面 客户端PrivateCompoent界面详解

    21.Java聊天室 IO流 Socket流 GUI界面 所有的效果图

    22.Java聊天室 IO流 Socket流 GUI界面 所有的代码

    23.总结与bug

    • 在使用objectstream流的时候 记得要定义种子 并且 in与out流的创建不能同时创建多个 否则会报找不到上次读取后的位置
    • 切换账号功能有问题 第二次登陆新的账号 新的流无法创建出来 所有的功能都会出现问题 有待改正 这一问题
    • 其他功能有些没有添加校验 后续可以将用户名查找进行添加 判断此用户名是否可以进行聊天与文件等的发送
    • 有待改进与完善

    SANWA聊天室主体页面分布

    • 布局


    • 分为服务端与客户端分别进行构建

    聊天室需求与思路

    • 需求
    必须完成的功能点:
    1、用户名登录注册(判断有没有重复用户名,可设置ip和端口)
    2、上下线提醒
    3、在线列表
    4、私聊
    5、公聊
    6、发送文字,文件。
    7、聊天记录 保存 查询 删除。
    8、下线
    
    选做功能
    2、建群
    3、大文件传输。(新建流传输)*
    4、离线消息*
    5、个人信息设置
    6、语音聊天*
    7、朋友圈
    8、文字表情
    9、增删好友,修改好友备注名。
    
    • 思路
    1:分别开发客户端 和 服务端  先实现客户端和服务的聊天功能
    2.我们要把客户端和服务端 读消息和写消息 不能都放主线程 这样设计不合理
    我们主线程 应该录入消息  子线程用来读取消息 
    以后开发中要注意 键盘录入数据应该放在主线程 ,如果放在子线程 有可能录入不了数据
    
    3.在实际中 我们肯定是不和服务器聊天的,我们是客户端和客户端进行聊天 ,所以我们修改代码
    服务器 只读取消息 然后转发消息 
    
    那实现步骤 我们循环监听客户端 每连接一个客户端 我们把 管道存到一个集合中 并循环开启一个客户端 对应的读取消息的子线程 并把管道集合传过去
    子线程拿到 相应的管道 获取该管道的输出流 写出去 当然这里需要我们定义 消息格式 比如: 接收者:消息内容:发送者
    
    4.上步我们用的是List单列集合,通过索引来区分的每个用户,不是很方便,我们改进一下,我们可以用双列集合来,保存一个用户名和他对应的管道,在服务端通过
    键找值的方式来获取对应管道,进行消息的转发,
    这样需要我们在 客户端 在开启聊天线程之前,先进行用户名的注册, 服务端也不要着急 开启 聊天线程,  而是再创建一个保存用户名的线程,单独完成用户名的注册
    用户名注册完成后,在保存用户名的线程里面 来开启 服务端的聊天线程
    
    5. 上步用户名完成后,我们顺遍在保存用户名的线程里面 ,再把上线提醒功能做了
    
    6. 在客户端里面 开启聊天线程之后  在提供 菜单选项,让用户选择 私聊,公聊,在线列表,退出等 选项
    
    7.在实现私聊功能时 约定发送消息的格式为  接收者:消息内容:消息类型
    
    8.服务端 收到客户端发来的消息后,拆分消息,根据消息类型 进行不同的逻辑处, 将消息转发回去 转发格式 约定为  发送者:内容:消息类型:时间
    
    
    展开全文
  • Java写的GUI界面,主要实现管理员登陆,新增图书,删除图书,修改图书信息,借阅图书,新增读者信息,修改和删除读者信息,就是这么多吧
  • 主要介绍了JAVA图形界面GUI)之表格的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • Java Swing是Java Foundation Classes的一部分,它是试图解决AWT缺点的一个尝试。从这一点上来说,Swing可以说是站在前人的肩膀上了。SWT/JFace象一股清新的风吹入了JavaGUI开发领域,为这个沉闷的领 域带来了勃勃...
  • java GUI界面设计练习

    2018-09-12 00:36:18
    练习GUI基本内容,gui界面设计基本内容入门知识。有需要的可以拿去练手
  • java-gui(界面组件案例大全)(内含139完整Demo) 来源于Oracle官网(原Sun网站)采集得到的java界面编程案例共139,希望对学习java-gui的童鞋有所帮助
  • 所使用netty版本为4 , 使用fastjson进行json格式的编解码,基于java GUI界面的简易netty聊天室(实现群聊和私聊)
  • 手写的JAVA+GUI界面设计,帮助一些小白和一些课设需要者
  • 界面美观,包括购买界面、支付界面,支持查看购买历史等。经多次测试,代码完全没有问题,导入包并建立好mysql数据库即可直接运行。
  • java课程设计 风扇 GUI

    2017-03-31 15:13:19
    java课程设要求编写的风扇源代码,
  • Java界面设计GUI

    万次阅读 多人点赞 2019-07-06 11:25:05
    界面主要是先申请一个窗口,窗口只能有一个,然后在窗口中可以有多个面板,多个面板的布局可以实现美丽的界面 首先申请一个JFrame窗口,可以设置窗口的大小及位置 然后申请JPanel面板,可以设置窗口的大小及位置 ...

    界面主要是先申请一个窗口,窗口只能有一个,然后在窗口中可以有多个面板,多个面板的布局可以实现美丽的界面

    • 首先申请一个JFrame窗口,可以设置窗口的大小及位置
    • 然后申请JPanel面板,可以设置窗口的大小及位置
    • 然后可以在面板上申请组件,例如标签,文本框,按钮和下拉框等

    这个是我做出的一个简单的图书管理系统界面

    具体代码如下,解释大都有注释

    package com.java.view;
    
    import java.awt.Dimension;
    import java.awt.Font;
    
    import javax.swing.JButton;
    import javax.swing.JComboBox;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JPasswordField;
    import javax.swing.JTextField;
    
    public class LogOnJFrame {
    	/*
    	 * 登录界面
    	 */
    	public static void main(String[] args) {
    		/*
    		 * 对窗口的操作,包括创建,设置标题,设置大小以及位置
    		 */
    		JFrame frame = new JFrame();// 创建一个窗口
    		frame.setTitle("图书管理系统");// 设置窗口标题
    		frame.setBounds(250, 100, 825, 600);// 设置窗口位置和大小
    
    		/*
    		 * 这是对整个窗口布局的格式化,已达到可以任意放面板,标签,文本框,按钮等东西
    		 */
    		// FlowLayout fl = new FlowLayout(FlowLayout.CENTER, 10, 10);//
    		// 实例化FlowLayout流式布局类的对象
    		frame.setLayout(null);// 布局为空
    
    		/*
    		 * 创建面板,以达到良好的布局
    		 */
    		JPanel panel = new JPanel();// JPanel:面板组件,非顶层容器
    		JPanel panel1 = new JPanel();
    		JPanel panel2 = new JPanel();
    		JPanel panel3 = new JPanel();
    		JPanel panel4 = new JPanel();
    		JPanel panel5 = new JPanel();
    		/*
    		 * 设置一个大标题,即图书管理系统,放到面板panel1里面
    		 */
    		JLabel labTitle = new JLabel("图书管理系统");//设置窗口标题
    		Font font1 = new Font("宋体", Font.BOLD, 50);//设置字形,字体和字号
    		labTitle.setFont(font1);
    		panel1.add(labTitle);
    		panel1.setBounds(260, 20, 300, 80);//设置窗口位置和大小
    		frame.add(panel1);
    
    		/*
    		 * 设置身份标签
    		 */
    		Font font = new Font("宋体", Font.BOLD, 16);
    		JLabel labCard = new JLabel("身份  ");// 用标签来表示文本或图片
    		labCard.setFont(font);// 设置标签字体的大小
    		panel.add(labCard);// 将lable标签添加到面板上
    
    		/*
    		 * 设置下拉框
    		 */
    		JComboBox<String> jcb = new JComboBox<String>();
    		Dimension dim = new Dimension(200, 30);//设置组件的宽和高
    		jcb.setPreferredSize(dim);
    
    		jcb.addItem("普通账户");
    		jcb.addItem("管理员账户");
    		jcb.setFont(font);
    		panel.add(jcb);
    		panel.setBounds(250, 100, 300, 50);
    		frame.add(panel);
    
    		/*
    		 * /* 创建一个账号标签,并设置字体以及字体大小
    		 */
    		JLabel labName = new JLabel("账号  ");// 用标签来表示文本或图片
    		labName.setFont(font);// 设置标签字体的大小
    		panel2.add(labName);// 将lable标签添加到面板上
    
    		/*
    		 * 创建一个文本框,并设置大小
    		 */
    		JTextField textName = new JTextField();
    		textName.setPreferredSize(dim);
    
    		panel2.add(textName);
    		panel2.setBounds(250, 150, 300, 50);// 设置面板的位置和大小
    		frame.add(panel2);// 添加面板到窗口中
    		/*
    		 * 创建一个密码标签
    		 */
    		JLabel labPass = new JLabel("密码  ");
    		labPass.setFont(font);
    		panel3.add(labPass);
    		/*
    		 * 设置密码文本框
    		 */
    		JPasswordField textPass = new JPasswordField();
    		textPass.setPreferredSize(dim);
    		panel3.add(textPass);
    		panel3.setBounds(250, 200, 300, 50);
    		frame.add(panel3);
    
    		/*
    		 * 设置一个按钮
    		 */
    		Dimension dim1 = new Dimension(80, 30);
    		JButton jb1 = new JButton("登录");
    		JButton jb2 = new JButton("注册");
    		jb1.setFont(font);
    		jb2.setFont(font);
    		jb1.setPreferredSize(dim1);
    		jb2.setPreferredSize(dim1);
    		panel4.add(jb1);
    		panel5.add(jb2);
    		panel4.setBounds(325, 250, 80, 50);
    		panel5.setBounds(445, 250, 80, 50);
    		frame.add(panel4);
    		frame.add(panel5);
    
    		frame.setVisible(true);// 显示窗口
    	}
    
    }
    

     

    展开全文
  • 是否苦恼于javaSwing界面编写?是否找不到合适的视频观看?是否考试要考swing界面?是否不满足于在黑窗口运行程序?..... 恭喜!你发现了宝藏!我们从基础知识入手,然后进行实战swing连接Mysql数据库,实现简单的登陆,带你...
  • Java用多线程GUI实现购买车票界面
  • Java——GUI(图形用户界面设计)

    万次阅读 2018-07-31 08:29:30
    //GUI功能简单运用 import java.awt.Button; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListe...
    事件处理:
        事件:用户的一个操作(例如:点击一下鼠标,或者敲击一下键盘)
        事件源:被操作的组件(例如:在一个窗体中的一个按钮,那个按钮就属于被操作的组件,按钮就是事件源)
        监听器:一个自定义的对象,实现了监听接口,包含事件处理方式,把监听器添加在事件源上,当事件发生的时候,虚拟机就会自动调用监听器中的事件处理方法
    package com.yy.gui;
    //GUI功能简单运用
    import java.awt.Button;
    import java.awt.FlowLayout;
    import java.awt.Frame;
    import java.awt.Toolkit;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.KeyAdapter;
    import java.awt.event.KeyEvent;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    
    public class Demo1_Frame {
    
        public static void main(String[] args) {
            Frame f = new Frame("琪老师好!");
            f.setSize(400,600);                         //设置窗体大小(宽和高)
            f.setLocation(500, 50);                     //设置窗体初始的位置
            f.setIconImage(Toolkit.getDefaultToolkit().createImage("beyond.jpg"));
            Button b1 = new Button("我就不~不滚咋滴!!!"); //设置按钮1,按钮名称:我就不~不滚咋滴!!!
            Button b2 = new Button("略略略");              //设置按钮2,按钮名称:略略略
            f.add(b1);
            f.add(b2);
            f.setLayout(new FlowLayout());              //设置布局管理器
            //f.addWindowListener(new MyWindowAdapter());//WindowListenter是一个接口,不能直接new一个接口,但是我们可以传这个接口的子类对象
    
    
            /*
            //窗体监听
            //优化2,匿名内部类
            //public void windowClosing(WindowEvent e)窗口正处在关闭过程中时调用。此时可重写关闭操作
    
            f.addWindowListener(new WindowAdapter(){    //WindowListener是一个接口,找个类去实现这个接口,重写接口中的所有方法,然后去调用自己想要的方法,继承WindowAdapter这个类
            //不能new接口,但是可以new这个接口的子类对象
                public void windowClosing(WindowEvent e){   //重写所需要的方法
                    System.exit(0);
                }
            });
    
            //new WindowAdapter(){}
            //new      类                 (){}  表示去继承这个类
            */
    
    
    
            /*
            //鼠标监听,鼠标点击进行指定操作
            //public void mouseClicked(MouseEvent e)鼠标按键在组件上单击(按下并释放)时调用
            //public void mouseReleased(MouseEvent e)鼠标按钮在组件上释放时调用
    
            b1.addMouseListener(new MouseAdapter(){     //匿名内部类,添加一个鼠标监听,鼠标适配器
    
    
                public void mouseClicked(MouseEvent e){//单击Clicked
                    System.exit(0);                     //退出
                }
    
                public void mouseReleased(MouseEvent e){//释放Released    
                    System.exit(0);
                }
    
            });
            */  
    
    
    
            /*
            //键盘监听以及键盘事件(满足某种条件就去执行对应的方法)
            //public int getKeyCode()返回与此事件中的键关联的整数 keyCode
            //返回:   键盘上实际键的整数代码
    
            b1.addKeyListener(new KeyAdapter(){         //匿名内部类,添加一个键盘监听器
                public void keyReleased(KeyEvent e){    //KeyEvent  键盘事件
                    //System.out.println(e.getKeyCode());   //打印键盘上的键所对应的整数值
    
                    第一种形式
                    if(e.getKeyCode() == 32){           //32对应的键是空格键
                        System.exit(0);                 //如果是空格键,退出程序
                    }
    
                    //第二种形式 
                    if(e.getKeyCode() == KeyEvent.VK_SPACE){        //类名.  去调用这个静态常量就可以
                    //KeyEvent.VK_SPACE
                    //类名             .         VK_SPACE代表空格   VK_ENTER代表回车  ...
                        System.exit(0);                 //退出程序
                    }
                }
            });                                         //KeyListener也是一个接口,
            */
    
    
    
            /*
            //动作监听
            b2.addActionListener(new ActionListener() {         //添加动作监听,应用场景就是暂停视频和播放视频
    
                @Override
                public void actionPerformed(ActionEvent e) {    //无论是敲空格键还是鼠标左键单击,都会退出java虚拟机,因为空格键还是鼠标左键单击是系统默认的
                    System.exit(0);
                }
            });
            */
    
    
    
            f.setVisible(true);                         //设置窗体可见
        }
    
    }
    
    //WindowAdapter:适配器,也是一个抽象类,定义为抽象类是为了,不想让你去创建这个类的对象,因为,就算创建了这个类的对象,调用这个类的空方法也是没有任何意义的。
    //该抽象类实现了WindowListener这个接口,并且重写了WindowListener这个接口中的所有的出抽象方法
    //方便在于:如果以后你想用WindowListener这个接口,只需要继承WindowAdapter这个类就可以了,想用那个方法,就重写那个方法即可
    //WindowAdapter该类中的方法都是空方法;
    //目的在于:就是为了提供给子类去使用这些方法,而不是自己用的,然后,WindowAdapter这个类把这些方法都给重写了,当子类去使用的时候,想用哪个方法,就直接重写哪个方法即可
    
    
    
    /*class MyWindowListener implements WindowListener{     //创建WindowListener这个抽象类的子类对象
    //如果一个抽象类中,没有定义任何的抽象方法,那这个抽象类的作用只有一个,不允许其他的类来创建这个抽象类的对象
        @Override
        public void windowOpened(WindowEvent e) {           //重写WindowListener这个接口里面的所有方法
        }
    
        @Override
        public void windowClosing(WindowEvent e) {
            System.out.println("Closing");
            System.exit(0);
        }
    
        @Override
        public void windowClosed(WindowEvent e) {
            System.out.println("Closed");
        }
    
        @Override
        public void windowIconified(WindowEvent e) {
        }
    
        @Override
        public void windowDeiconified(WindowEvent e) {
        }
    
        @Override
        public void windowActivated(WindowEvent e) {
        }
    
        @Override
        public void windowDeactivated(WindowEvent e) {
        }
    
    }
    */
    
    
    /*
     优化1 
     class MyWindowAdapter extends WindowAdapter{               //创建一个类MyWindowAdapter去继承WindowAdapter(适配器)这个抽象类
    //该抽象类实现了WindowListener这个接口,并且重写了WindowListener这个接口中的所有的出抽象方法,方便在于:如果以后你想用WindowListener这个接口,只需要继承WindowAdapter这个类就可以了,想用那个方法,就重写那个方法即可
    //这里就不会去强制重写任何方法,用哪个重写哪个方法就可以 
        public void WindowClosing(WindowEvent e){               
            System.exit(0);
        }
    }
    */
     * A:什么是适配器
     *      在使用监听器的时候,需要定义一个类事件监听器接口
     *      通常接口中有多个方法,而程序中不一定所有的都能用到,但有必须重写所有的方法,这很繁琐
     *      适配器简化了这些操作,我们定义监听器时只要继承适配器,然后重写需要的方法即可
     * B:适配器原理(Adapter就是一个适配器)
     *      适配器就是一个类,实现了监听器接口,所有的抽象方法都重写了,但是方法全是空的
     *      适配器类需要定义成抽象的,因为创建该类对象,调用空方法都是没有意义的
     *      目的就是为了简化程序员的操作,定义监听器时继承适配器,只重写需要的方法就可以了
     * 适配器设计模式
     * 例如:鲁智深(花和尚)。是个和尚(假如,和尚每天要做的事情为打坐、念经、撞钟、习武),现在有一个  和尚  接口,该接口有打坐、念经、撞钟、习武这四个方法,
     * 但是鲁智深只喜欢习武,所以,让鲁智深去实现  和尚  这个接口是不合适的
     * 首先有个接口  和尚 ,和尚 这个接口里面有一些方法打坐、念经、撞钟、习武
     * 而鲁智深只喜欢习武,所以,这时候,我们就可以创建一个中间类  天罡星 ,这个  天罡星  这个类实现了这个   和尚  接口,实现  和尚  这个接口之后,重写了  和尚  这个接口里面的所有抽象方法
     * 天罡星 这个类重写了  和尚  里面的所有抽象方法,这些抽象方法都是空的,为了防止别人拿这个  天罡星 这个类去创建对象,于是就把  天罡星 这个类给声明成抽象类
     * 把  天罡星  这个类声明成抽象类的原因:不想让其他类去创建本类对象,因为创建也是没有意义的,天罡星 这个类里面的方法都是空的,这里的  天罡星 这个类就起到一个过渡的作用
     * 然后,创建一个    鲁智深   类,让  鲁智深  这个类去继承  天罡星  这个抽象类,于是,鲁智深 这个类 想重写哪个方法就重写哪个方法就行了,由于鲁智深只想习武,于是只需要重写  习武  这个方法就行了
     * 然后,重写 习武 这个方法,输出倒拔垂杨柳,拳打镇关西,大闹野猪林...即可
     * 这时候,唐三藏来了,而他只喜欢打坐,念经,撞钟,但是他不喜欢习武,于是,就可以定义一个  唐三藏  类去继承  天罡星  这个抽象类  然后重写他需要的方法即可;

    代码如下

    package com.yy.适配器;
    
    public class Demo1_Adapter {
        public static void main(String[] args) {
            鲁智深  yy = new 鲁智深();            //创建  鲁智深  这个类对象
            唐三藏 wsq = new 唐三藏();            //创建  唐三藏  这个类对象
            yy.习武();                           //调用  鲁智深  这个类中的  习武  方法
    
            wsq.念经();                          //调用  唐三藏  这个类中的  念经  方法
            wsq.打坐();                          //调用  唐三藏  这个类中的  打坐  方法
            wsq.撞钟();                          //调用  唐三藏  这个类中的  撞钟  方法
        }
    
    }
    
    interface 和尚{                               //定义一个 和尚  接口
        public void 打坐();                       //这些是  和尚 这个接口的所有抽象方法
        public void 念经();
        public void 撞钟();
        public void 习武();
    }
    
    //适配器设计模式
    abstract class 天罡星 implements 和尚{       //声明成抽象类的原因是:不想让其他类去创建本类对象,因为创建也是没有意义的,方法都是空的
    //这里的  天罡星  这个类就充当着适配器的作用,作为中间类
        @Override
        public void 打坐() {      //重写  和尚 这个接口里面的所有抽象方法,但是都是空方法,调用空方法是没有任何意义的
        }
    
        @Override
        public void 念经() {
        }
    
        @Override
        public void 撞钟() {
        }
    
        @Override
        public void 习武() {
        }
    
    }
    class 鲁智深 extends 天罡星{      //鲁智深  这个类去继承   天罡星  这个抽象类
        public void 习武() {
            System.out.println("倒拔垂杨柳");
            System.out.println("拳打镇关西");
            System.out.println("大闹野猪林");
            System.out.println("......");
        }
        //这里并没有重写toString方法,而是采用   类名.    的方法调用类中的每个方法
    }
    class 唐三藏 extends 天罡星{
        public void 打坐(){
            System.out.println("我佛慈悲");
        }
        public void 念经() {
            System.out.println("阿弥陀佛");
        }
        public void 撞钟() {
            System.out.println("duangduangduang");
        }
    }
    
    展开全文
  • 在使用java 进行qt 界面开发的时候,必不可少的qt jambi 开发包。 下载压缩包后 将其中的 jar导入项目的build path。 然后,在安装了qtjambi 插件的eclipse 中的 Qt Jambi Preference Page 的 Jambi Location 处...
  • import java.awt; import java.awt.event; import javax.swing; import ; import java.io; //未解决登录注册模块聊天记录模块以及显示在线好友有选择性的聊天模块 public class MyChatRoom { public static void ...
  • 主要介绍了Java的带GUI界面猜数字游戏的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • Java :swing and AWT 抽象窗口工具组(Abstract Window Toolkit=AWT) ...二、如何搭建一个基本的GUI界面. 1. 新建一个Frame ** 1.1 直接 ctrl + 左键点击 Frame() 查看源码知道 Frame frame = ne...

    Java :swing and AWT 抽象窗口工具组(Abstract Window Toolkit=AWT)


    一、AWT

    1.包含很多类和接口GUI
    2.元素:窗口,按钮,文本框…
    3. java.awt
    4.组件框架.

    在这里插入图片描述

    二、如何搭建一个基本的GUI界面.

    1. 新建一个Frame
    1.1 直接 ctrl + 左键点击 Frame() 查看源码知道(比jdk好哟用),需要添加一个String类型的题目 title
    Frame frame = new Frame("title");
    
    2. 设置可见性 ,(也可以在最后设置) frame.setVisiable(true);
    2.1 使用实例 frame. 然后会弹出实例可以用的方法,这也是查看源码的一种方法,比jdk好用。
    3. 设置大小 setSize(); 单位像素
    3.1 使用 2.1 的查看源码的方法得知由2个参数 int width 和 int height 宽高.
    frame.setSize(300,300);
    
    4.用同样的方法设置窗体背景颜色 蓝色setBackground(Color.blue);
    4.1 还可以使用 new Color(int red;int green;int blue;int a)设置色比例和a 透明度来设置颜色,详情看源码.
    5. 设置初始坐标. setLoation() ;
    5.1 看源码得知,需要2个参数 x ,y 最左上角的坐标,单位像素
    6.设置窗体的是否可缩放 setResize(true);

    7.设置退出事件监听,让程序点击关闭后能正常退出.

    7.1 给frame添加窗口监听,Windowadapter 为window适配器只需要添加一个重写(WindowClosing)的方法即可.
    frame1.addWindowListener( new WindowAdapter());
    
    7.2 :在重构Override中写入退出的代码,
     System.out.println("退出成功.");
     System.exit(0);
    
    8.总结以上为常用 方法 还有很多方法自己看源码.

    二、总代码

    package GUI.第一个GUI;
    
    import java.awt.*;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    
    /**
     * GUI 的第一个界面
     */
    public class Demo {
        public static void main(String[] args) {
            //1.直接ctrl + 点击Frame()查看源码括号需要添加什么东西.
            Frame frame = new Frame("半亩方糖的第一个GUI界面");
            //2.需要设置可见性,直接使用实例 frame.然后看出现的方法来判断有哪些方法可用。
            frame.setVisible(true);
            //3. 由 2 知,可以设置大小 setSize(),看源码.
            frame.setSize(400,400);
            //4. 由 2 知道,可以设置属性,看源码.idea左边可以快捷选择颜色.
            frame.setBackground(new Color(139, 168, 20));
            //5.设置初始坐标
            frame.setLocation(500,100);
            //6.设置窗口固定
            frame.setResizable(false);
            //7.设置窗口监听,退出监听.
            frame.addWindowListener(new WindowAdapter() {
                @Override
                public void windowClosing(WindowEvent e) {
    
                    System.out.println("退出成功!");//打印消息
                    System.exit(0);//返回为 0 的退出.
                }
            });
    
    
    
        }
    }
    
    

    输出

    在这里插入图片描述

    展开全文
  • JAVA如何设计窗口界面GUI

    千次阅读 2020-04-05 23:37:49
    JAVA如何设计窗口界面GUI 程序文件数及位置如下: 以下为Title_1类的代码:
  • java 初学者练习的小项目,做一个登录界面,采用的文件读取,加的有图片,,里面有可运行的java工程源码和jar架包。交作业(你懂得),学习必备。。
  • Java教材中网络章节中关于TCP聊天程序的例子,结合多线程的程序设计方法,使得服务器端可以同时与多客户端聊天
  • 生命游戏javaGUI实现界面十分美观
  • JavaGUI图形化界面学习笔记及知识点思维导图
  • 1)掌握Java语言GUI设计的概念; 2)掌握Java Swing包的使用; 3)掌握Java Swing包中常用组件类的功能和使用; 4)运用Java Swing包完成简单的图形用户界面GUI)。 二、实验内容及步骤 1、利用JOptionPane类编程...
  • \quad ❤❤❤❤❤❤❤❤❤❤ 文章目录 设计要求 思路 目录结构 效果展示 代码 设计要求 使用Java设计实现一个带有GUI界面的学生成绩管理系统。基本功能包括: 增添、删除、修改学生基本信息:学号、姓名、出生日期...
  • java GUI界面设计之窗口和容器java GUI界面设计之窗口和容器
  • Java gui 页面 跳转页面的示例代码,也包含了Java gui 界面 的基本写法

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 77,035
精华内容 30,814
关键字:

java设计一个gui界面

java 订阅