day20 GUI(Graphics User Interface)
顶层容器:JWindow、JFrame、JDialge、JAsplet
JFrame,默认布局是边界布局
JFrame的内容面板是:Container。
面板容器:JPanel,默认布局是流布局。
布局:空布局(绝对布局)、边界布局管理器、流式布局管理器、网格布局管理器、卡片布局管理器、网格箱布局管理器
边界布局:东西南北中,南北要贯通,中间最大(范围最大,权利最大)。
流式布局:按从左往右、从上到下、中间开始的方式依次排放,组件大小根据内容确定。
网格布局:按行列将整个容器划分为等大的区域,放入的子容器数目与设置的数目不等时,优先保证行,改变列。
卡片布局:
翻页步骤:1、首先得到被设置为卡片布局的那个容器
SeasonPanel sp = ButtonPanel.this.cardF.getSeaP();
//2、得到这个容器的布局管理器
CardLayout card = (CardLayout)sp.getLayout();
//3、调用该布局管理器翻页
card.first(sp);
组件:
JTextField(文本框)、JPasswordField(密码框)、JLabel(标签)、JButton(按钮)、JCheckBox(复选框)、JRadioButton(单选框)、JComboBox(下拉框)、JList(列表框)、JScrollPane(滚动窗格)、JSplitPane(拆分窗格)、JTextArea(文本域)、JTabbedPane(页签组件)...
同一组的单选、复选按钮必须创建并放入到ButtonGroup组件中。
事件处理机制:
方法1、让一个监听类监听多个事件源,用if判断进行分割,但这么做违背单一原则。
监听器提供的抽象方法——回调方法,抒写了这个方法的实现,但并不主动调用,交由系统调用。
如果需要操作非事件源的其它组件,需要传参,在构造的时候传参,一般传参传Frame面板的那个参。
方法2、让容器类充当监听器
只能让这个容器类监听类中的多个对象,违背了单一职责。
好处:操作本容器的组件或中间容器,不用传参。
方法3、匿名内部类(推荐使用)
在绑定监听的时候,同时实现监听类。
好处:每个事件源对象都可以拥有监听器类,既满足单一,也不会增加文件数量。
操作外部容器类的任何组件/子容器不用传参。
JFrame前段代码(常用):
public MyFrame(){
Toolkit tk = Toolkit.getDefaultToolkit();//获取工具对象
int screenWidth = (int)tk.getScreenSize().getWidth();
int screenHight = (int)tk.getScreenSize().getHeight();
this.setSize(400, 300);//设置窗体大小
this.setLocation(this.getX(), this.getY());//设置窗体位置
this.setBackground(Color.BLUE);//设置背景颜色
this.setTitle("欢迎您");//设置标题
this.setIconImage(tk.createImage("路径"));//设置标题图片
this.setResizable(true);//设置大小不能改变
this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);//退出即关闭
this.addContent();//内容面板
this.setVisible(true);//设置窗体可见
}
private void addContent(){
this.contentP= this.getContentPane();//获取内容面板
}
java绘图技术
1、绘图原理:Component类提供了两个和绘图相关最重要的方法
Paint(Graphics g)绘制组件的外观
repaint()刷新组件的外观
2、绘图原理:
以下情况paint()将会被调用
窗口的大小发生变化
组件第一次在屏幕显示
repaint函数被调用
3、Graphics类
画直线——diawLine
画矩形边框——diawRect
画椭圆边框——drawOval
画填充矩形——fillRect
画填充椭圆——fillOval
画图片——drawImage
画字符串——drawString
...
day20 GUI(Graphics User Interface)的更多相关文章
- GDI+(Graphics Device Interface)例子
使用SolidBrush 单色画笔 Bitmap bitmap = new Bitmap(800, 600); Graphics graphics = Graphics.From ...
- GDI+(Graphics Device Interface)
1创建画布(创建Graphics对象) Bitmap bitmap = new Bitmap(80,80); Graphics g=Graphics.FromImage(bitmap); 2创建Pen ...
- GUI(Graphical User Interface)
译:用户和图形界面 GUI与程序交互的不同方式,包含3基本要素:输入,处理和输出. 常用GUI框架包括以下几种: wxPython Kivy Flexx PyQt Tkinter Pywin32 Py ...
- gui组件
//guI; graphics user interfaceimport javax.swing.*;import java.awt.*; public class Main { public sta ...
- Java程序设计11——GUI设计与事件处理A
1.GUI设计 Java使用AWT和Swing类完成图形用户界面编程,AWT全称是Abstract Window Toolkit,即抽象窗口工具集,它是Sun最早提供的GUI库,只是这个库功能比较有限 ...
- 30255Java_5.5 GUI
GUI GUI的各种元素(如:窗口,按钮,文本框等)由Java类来实现 1.AWT 使用AWT所涉及的类一般在java.awt包及其子包中 AWT(Abstract Window Toolkit)包括 ...
- Java笔记 - GUI编程
一.图形界面开发 1.AWT开发 AWT(Abstract Window Toolkit)在Windows.Linux提供的图形窗口之上,再次进行了抽象,为不同语言开发的程序提供统一定义的图形接口,可 ...
- 现代工程仿真CAE技术介绍
随着现代科学技术的发展,人们正在不断建造更为快速的交通工具.更大规模的建筑物.更大跨度的桥梁.更大功率的发电机组和更为精密的机械设备.这一切都要求工程师在设计阶段就能精确地预测出产品和工程的技术性能, ...
- (转)win32Application和win32ApplicationConsole
这几天在创建MFC项目时,常常遇到一下两个连接错误,例如: 1. LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _ma ...
随机推荐
- CS小分队第二阶段冲刺站立会议(6月1日)
昨日成果:完成了,文件图标的获取,以及代码删除获取文件的图标的功能:实现了从桌面拖动一个应用到窗体进行添加的功能: 遇到问题:获取的文件图标太小了,比较模糊:从外面拖动文件到窗体时,图标一直获取错误, ...
- NetFPGA-SUME下reference_nic测试
Reference_nic Reference_nic是NetFPGA-SUME中提供的一个参考Demo,本文主要介绍如何构建并在SUME上运行reference_nic. GIT源 git clon ...
- 第二次作业<1>
1001.A+B Format (20) ac代码 1. 解题思路 先求和,再输出. 答案区间为-2,000,000至2,000,000,将答案分为三个区段分类讨论.虽然觉得很烦但是想不出更好的方法. ...
- java实现中值滤波均值滤波拉普拉斯滤波
目录 来对下面的图像滤波,其实就是对各个像素点进行数学运算的过程 均值滤波 中值滤波 拉普拉斯滤波 Sobel滤波 注意 来对下面的图像滤波,其实就是对各个像素点进行数学运算的过程 均值滤波 均值滤波 ...
- Java中实现PCA降维
package com.excellence.splitsentence; import java.net.UnknownHostException; import java.util.ArrayLi ...
- 26_多线程_第26天(Thread、线程创建、线程池)_讲义
今日内容介绍 1.多线程 2.线程池 01进程概念 A:进程概念 a:进程:进程指正在运行的程序.确切的来说,当一个程序进入内存运行, 即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能 ...
- 『编程题全队』Alpha 阶段冲刺博客集合
『编程题全队』Alpha 阶段冲刺博客集合 »Day1 2018年4月19日 博客连接:『编程题全队』Alpha 阶段冲刺博客Day1 »Day2 2018年4月20日 博客连接:『编程题全队』Alp ...
- [转帖]TLS 1.3概述
TLS 1.3概述 http://www.inforsec.org/wp/?p=1960 By Yanting Yang | 四月 26, 2017| SecComm 作者:李新宇 中科院软件所 ...
- docker weave安装
1.升级内核到3.10.0以上,安装iproute22.安装 0.80版本:#wget -O /usr/local/bin/weave https://raw.githubusercontent.co ...
- ThreadLocal 定义,以及是否可能引起的内存泄露(threadlocalMap的Key是弱引用,用线程池有可能泄露)
ThreadLocal 也可以跟踪一个请求,从接收请求,处理请求,到返回请求,只要线程不销毁,就可以在线程的任何地方,调用这个参数,这是百度二面的题目,参考: Threadlocal 传递参数(百度二 ...