3.17晚 。 GUI进度(2/3), 前来将学习到的GUI总结回顾一下。其实差不多不搞了,因为现在基本都不会用上了,已经早被淘汰了。以后有需要了在学。

资料:B站狂神 【狂神说Java】GUI编程入门到游戏实战_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1DJ411B75F?p=1

自敲代码已上传gitee:https://gitee.com/kimloklee/gui-study.githttps://gitee.com/kimloklee/gui-study.git

c站内容参考:java中AWT和SWing的区别与联系_Cris_February的博客-CSDN博客_awt和swinghttps://blog.csdn.net/qq_32725491/article/details/78701620


1.Gui的核心技术:AWT、Swing :

1.AWT(Abstract Window Toolkit):抽象窗口工具包,早期编写图形界面应用程序的包。

2.Swing :为解决 AWT 存在的问题而新开发的图形界面包。Swing是对AWT的改良和扩展。

相同点:AWT和Swing都是java中的包。

AWT和Swing之间的区别:
       1)AWT 是基于本地方法的C/C++程序,其运行速度比较快;Swing是基于AWT的Java程序,其运行速度比较慢。

2)AWT的控件在不同的平台可能表现不同,而Swing在所有平台表现一致。

AWT组件大致常用:

1.Button

2.TextFile

3.ActionListener


2.Swing组件按功能可分为如下几类:
  

1、顶层容器:JFrame, JApplet, JDialog和JWindow。
  2、中间容器:JPanel, JScrollPane, JSplitPane, JTooIBar等。
  3、特殊容器:在用户界面上具有特殊作用的中间容器,如JlnternalFrame、JRootPane、JLayeredPane和JDestopPane等。
  4、基本组件:实现人机交互的组件,如Button、 JComboBox、Just, Menu、Mider等。
  5、不可编辑信息的显示组件:向用户显示不可编辑信息的组件,如JLabel、JProgressBar和JTooITip等。
  6、可编辑信息的显示组件:向用户显示能被编辑的格式化信息的组件,如JTable、JTextArea和JTextField等。
  7、特殊对话框组件:可以直接产生特殊对话框的组件,如JColorChoosor和JFileChooser等。

Swing的4个顶层容器类直接继承了AWT组件,而不是从JComponent派生出来的,它们分别是:JFrame、JDialog、JApplet和JWindow。
    顶层容器类并不是轻量级组件,而是重量级组件(需要部分委托给运行平台上GUI组件的对等体)。

顶层容器中:
1.JApplet可作为java小应用程序的窗体,但通常使用java.applet.Applet类来创建小应用程序。
2.JFrame集成自AWTFrame类,通常作为主窗体使用。
3.JDialog用于创建对话框的窗体。
4.JWindow与AWT中的Window相似,但几乎不用,因为没有太大的实用价值。

Swing组件的类名和对应AWT组件的类名基本一致,只要在原来的AWT组件类名前添加“J”即可,但有如下几个例外:
  1、JComboBox:对应于AWT里的Choice组件,但比Choice组件功能更丰富。
  2、JFileChooser:对位于AWT里的FileDialog组件。
  3、JSrcoIIBar:对应AWT里的Scrollbar。注意两个组件类名中b字母的大小写差别。
  4、JCheckBox:对应于AWT里的Checkbox。注意两个组件类名中b字母的大小写差别。
  5、JCheckBoxMenuItem:对应于AWT里的CheckboxMenuItem,注意两个组件类名中b字母的大小写差别。


1.Frame

Frame frame=new Frame("Frame窗口");frame.setVisble(true);frame.setSize(200,200);

2.   Panel面板(可以成是一个空间,但是不能单独存在)

Panel panel=new Panel();
frame.add(panel);

3.监听器 WindowListener,关闭窗口

 frame.addWindowListenr(new WindowListener(){@overridepublic void windouwClosing(WindouwEvent e){System.exit(0);}
}
)

4.三种布局

frame.setLayout(new FlowLayout());               //默认流布局,从左到右
frame.setLayout(new FlowLayout.LEFT)           //固定在左边frame.add(button1,BorderLayout.EAST);              //东南西北布局frame.setLayout(new GridLayout(3,2));                 //表格 两行三列
frame.add(bt1);
frame.add(bt2);
frame.add(bt3);                           //要一个一个的add进去
..
frame.add(bt6);pack();                 //自动整理

Swing的JFram窗体。

1.很多是Frame类的衍射,只要在签名加一个大写J。如JFrame

又比如是JLabel等等。不过要用容器搭载,new一个容器对象。

public class JFrameDemo extends JFrame {public JFrameDemo(){JFrame jframe=new JFrame("这个一个JFrame窗口");Container container=this.getContentPane();    //必须要又容器 比如填充jframe的 setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); //关闭窗口jframe.setVisible(true);                    //backgroundjframe.setBounds(x,y,width,height);JLbael jlabel=new JLabel("JLabel内容");jframe.add(Jlabel);                          //add进去  也可以像下面一个用容器add //进去JButton jbutton1=new JButton();       //Jbutton可以add图片 jb.setIcon(icon)container.add(jbutton1);               //add按钮}public static void main(String[] args){new JFrameDemo();
}}

2.获取外部资源(图片)

public class ImageIconDemo extends JFrame{public  ImageIconDemo (){JLabel jlabel=new JLabel("标签里面放图片");URL url=ImageIconDemo.class.getResource("tx.jpg");ImageIcon imageIcon=new ImageIcon(url);jlabel.setIcon(imageIcon);jlabel.setHorizontalAlignment(SwingConstants.CENTER);//放中间Container container=getContentPane();container.add(jlabel);
}public static void main(String[] args) {new ImageIconDemo();}}

还有一些Demo很多都是配合监听器使用的。这里监听器我没有记录。因为要详细记录的话,得开新的一章。 晚点我可能会补上。大家可以看我的Gitee的代码。暂时到这 。晚安。

GUI上半段学习总结相关推荐

  1. Py:python利用easygui实现最简单GUI带你学习区块链技术的发展和由来

    Py:python利用easygui实现最简单GUI带你学习区块链技术的发展和由来 目录 输出结果 实现代码 输出结果 实现代码 # -*- coding: utf-8 -*- ''' Created ...

  2. 002柿饼派GUI模组学习之AnimatedImage控件调试

    本文声明:本文为个人学习柿饼派显示模组的相关记录与经验. 002柿饼派GUI模组学习之AnimatedImage 控件调试 1.认识AnimatedImage控件   AnimatedImage是动态 ...

  3. matlab软件中GUI界面开发学习——双色球选择小工具

    matlab软件中GUI界面开发学习--双色球选择小工具 先上一张界面截图: 特别说明:只是最近对双色球比较感兴趣,所以找了一个实际的项目依据帮助我学习GUI工具,小工具的相关条件仅代表个人想法,选择 ...

  4. qt5python gui cookbook_Python GUI Programming Cookbook学习笔记

    学习笔记 Chapter2 Layout Management 第一节:Arranging several labels within a label frame widget 把代码加进上一篇文章中 ...

  5. JAVA GUI界面组件学习

    这周主要练习了GUI界面组件,设计了一个登陆界面,整体运用BorderLayout界面,将界面分为上.中.下,又将中间部分分为三层,运用了组合框来记录登陆ID,添加了复选框完善程序,基本实现了登陆界面 ...

  6. RT-Thread 柿饼GUI入门课程学习总结

    前言 11月中旬的时候,我在RT-Thread的微信公众号推文看到了柿饼UI的入门课程活动.其实也不是第一次看到这个GUI的介绍,但是用Js开发的方式确实有点吸引我.https://mp.weixin ...

  7. lvgl gui项目|基于编写的lvgl 8.1的GUI,欢迎学习体验

    文章目录 前言 演示视频 获取源码 前言 Linux lvgl gui 2.0和大家见面啦! 全新的架构,功能更强大 二次开发非常方便 独立的应用之间使用dbus通信 GUI基于lvgl 8.1开发, ...

  8. JAVA GUI重要知识点学习心得

    本人最近学习javaGUI发现重要知识点和思想用的频率很高,把它们整理下来一起分享 1:JFrame窗口和JDialog窗口 一班JFrame用作主窗口,JDialog用作弹出窗口(即对话框),但JF ...

  9. java上下左中右的布局面板_JAVA GUI重要知识点学习心得

    本人最近学习javaGUI发现重要知识点和思想用的频率很高,把它们整理下来一起分享 1:JFrame窗口和JDialog窗口 一班JFrame用作主窗口,JDialog用作弹出窗口(即对话框),但JF ...

最新文章

  1. 数据库设计性能与效率
  2. JavaWeb-网站在线用户信息、网站访问量以及管理踢出用户实例
  3. FreeLibraryAndExitThread DLL中线程的安全退出
  4. Maven 项目名称红色感叹号的问题总结
  5. 如何手工快速判断目标站是windows还是linux服务器
  6. android xml引用系统资源文件,android开发教程之系统资源的使用方法 android资源文件...
  7. 菜鸟教程python正则表达式_python 正则表达式详解
  8. iis 404错误从定向完美方案
  9. Linux 驱动面试题总结【转】
  10. 今日写代码遇到的https请求的时候,提示ssl证书错误
  11. 设计一款知识性产品需要考虑十二个基本问题
  12. Python分类求和方法
  13. SpringBoot2.6.5整合CXF框架
  14. 计算机打印服务设置s,Print Spooler 服务
  15. 拉肚子差评回复模板_遇到差评,餐厅这样对症回复就对了!
  16. Python100Days学习笔记---Day16-20Python语言进阶
  17. 什么是数字孪生?把这篇文章看完你就能秒懂
  18. 微创新:粉丝电子商务及微博的9种盈利模式
  19. 数据中台你想知道的都在这里!
  20. 打开cmd的方式与常用的dos命令

热门文章

  1. 图形开发——显卡学习
  2. 超级账本-面向企业的分布式账本
  3. Word:文字怎么变成方框了(转)
  4. 0417-Autosar AP总结
  5. Vue的slot-scope和scope.row(个人理解)
  6. 诺禾-NFS 效劳器
  7. 【我的开源】拿来即用!代码生成器:mybatis-plus-generator自定义模板生成 DTO、VO、Convertor、增删改查方法
  8. 408计算机先学哪个,408计算机考研视频课哪个好
  9. 爬取《Five Hundred Miles》在网易云音乐的所有评论
  10. 网络上的两台计算机如何互相访问,win10如何实现两台电脑无线互访