GUI上半段学习总结
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上半段学习总结相关推荐
- Py:python利用easygui实现最简单GUI带你学习区块链技术的发展和由来
Py:python利用easygui实现最简单GUI带你学习区块链技术的发展和由来 目录 输出结果 实现代码 输出结果 实现代码 # -*- coding: utf-8 -*- ''' Created ...
- 002柿饼派GUI模组学习之AnimatedImage控件调试
本文声明:本文为个人学习柿饼派显示模组的相关记录与经验. 002柿饼派GUI模组学习之AnimatedImage 控件调试 1.认识AnimatedImage控件 AnimatedImage是动态 ...
- matlab软件中GUI界面开发学习——双色球选择小工具
matlab软件中GUI界面开发学习--双色球选择小工具 先上一张界面截图: 特别说明:只是最近对双色球比较感兴趣,所以找了一个实际的项目依据帮助我学习GUI工具,小工具的相关条件仅代表个人想法,选择 ...
- qt5python gui cookbook_Python GUI Programming Cookbook学习笔记
学习笔记 Chapter2 Layout Management 第一节:Arranging several labels within a label frame widget 把代码加进上一篇文章中 ...
- JAVA GUI界面组件学习
这周主要练习了GUI界面组件,设计了一个登陆界面,整体运用BorderLayout界面,将界面分为上.中.下,又将中间部分分为三层,运用了组合框来记录登陆ID,添加了复选框完善程序,基本实现了登陆界面 ...
- RT-Thread 柿饼GUI入门课程学习总结
前言 11月中旬的时候,我在RT-Thread的微信公众号推文看到了柿饼UI的入门课程活动.其实也不是第一次看到这个GUI的介绍,但是用Js开发的方式确实有点吸引我.https://mp.weixin ...
- lvgl gui项目|基于编写的lvgl 8.1的GUI,欢迎学习体验
文章目录 前言 演示视频 获取源码 前言 Linux lvgl gui 2.0和大家见面啦! 全新的架构,功能更强大 二次开发非常方便 独立的应用之间使用dbus通信 GUI基于lvgl 8.1开发, ...
- JAVA GUI重要知识点学习心得
本人最近学习javaGUI发现重要知识点和思想用的频率很高,把它们整理下来一起分享 1:JFrame窗口和JDialog窗口 一班JFrame用作主窗口,JDialog用作弹出窗口(即对话框),但JF ...
- java上下左中右的布局面板_JAVA GUI重要知识点学习心得
本人最近学习javaGUI发现重要知识点和思想用的频率很高,把它们整理下来一起分享 1:JFrame窗口和JDialog窗口 一班JFrame用作主窗口,JDialog用作弹出窗口(即对话框),但JF ...
最新文章
- 数据库设计性能与效率
- JavaWeb-网站在线用户信息、网站访问量以及管理踢出用户实例
- FreeLibraryAndExitThread DLL中线程的安全退出
- Maven 项目名称红色感叹号的问题总结
- 如何手工快速判断目标站是windows还是linux服务器
- android xml引用系统资源文件,android开发教程之系统资源的使用方法 android资源文件...
- 菜鸟教程python正则表达式_python 正则表达式详解
- iis 404错误从定向完美方案
- Linux 驱动面试题总结【转】
- 今日写代码遇到的https请求的时候,提示ssl证书错误
- 设计一款知识性产品需要考虑十二个基本问题
- Python分类求和方法
- SpringBoot2.6.5整合CXF框架
- 计算机打印服务设置s,Print Spooler 服务
- 拉肚子差评回复模板_遇到差评,餐厅这样对症回复就对了!
- Python100Days学习笔记---Day16-20Python语言进阶
- 什么是数字孪生?把这篇文章看完你就能秒懂
- 微创新:粉丝电子商务及微博的9种盈利模式
- 数据中台你想知道的都在这里!
- 打开cmd的方式与常用的dos命令