顶层容器: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)的更多相关文章

  1. GDI+(Graphics Device Interface)例子

    使用SolidBrush 单色画笔 Bitmap bitmap = new Bitmap(800, 600);            Graphics graphics = Graphics.From ...

  2. GDI+(Graphics Device Interface)

    1创建画布(创建Graphics对象) Bitmap bitmap = new Bitmap(80,80); Graphics g=Graphics.FromImage(bitmap); 2创建Pen ...

  3. GUI(Graphical User Interface)

    译:用户和图形界面 GUI与程序交互的不同方式,包含3基本要素:输入,处理和输出. 常用GUI框架包括以下几种: wxPython Kivy Flexx PyQt Tkinter Pywin32 Py ...

  4. gui组件

    //guI; graphics user interfaceimport javax.swing.*;import java.awt.*; public class Main { public sta ...

  5. Java程序设计11——GUI设计与事件处理A

    1.GUI设计 Java使用AWT和Swing类完成图形用户界面编程,AWT全称是Abstract Window Toolkit,即抽象窗口工具集,它是Sun最早提供的GUI库,只是这个库功能比较有限 ...

  6. 30255Java_5.5 GUI

    GUI GUI的各种元素(如:窗口,按钮,文本框等)由Java类来实现 1.AWT 使用AWT所涉及的类一般在java.awt包及其子包中 AWT(Abstract Window Toolkit)包括 ...

  7. Java笔记 - GUI编程

    一.图形界面开发 1.AWT开发 AWT(Abstract Window Toolkit)在Windows.Linux提供的图形窗口之上,再次进行了抽象,为不同语言开发的程序提供统一定义的图形接口,可 ...

  8. 现代工程仿真CAE技术介绍

    随着现代科学技术的发展,人们正在不断建造更为快速的交通工具.更大规模的建筑物.更大跨度的桥梁.更大功率的发电机组和更为精密的机械设备.这一切都要求工程师在设计阶段就能精确地预测出产品和工程的技术性能, ...

  9. (转)win32Application和win32ApplicationConsole

    这几天在创建MFC项目时,常常遇到一下两个连接错误,例如: 1. LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _ma ...

随机推荐

  1. 20135234mqy-——信息安全系统设计基础第七周学习总结

    第六章 存储器层次结构 存储器系统是一个具有不同容量,成本和访问时间的存储设备的层次结构. CPU寄存器保存着最常用的数据. 靠近CPU的小的,快速的高速缓存存储器作为一部分存储在相对较慢的主存储器( ...

  2. 20162325 金立清 S2 W3 C13

    20162325 2017-2018-2 <程序设计与数据结构>第3周学习总结 教材学习内容概要 查找是在一组项内找到指定目标或是确定目标不存在的过程 高效的查找使得比较的次数最少 Com ...

  3. Ubuntu下开启mysql远程访问

    1. 开启数据库3306端口 首先,使用如下指令查看3306端口是否对外开放. netstat -an | grep 3306 tcp 0 0 127.0.0.1:3306 0.0.0.0:* LIS ...

  4. 第二阶段Sprint冲刺会议5

    进展:能够保存到手机或内存卡上,没有实现自己选路径,指定路径为内存卡并能够播放已录制好的视频.

  5. IHttpModule理解-知识补充

    文章:IHttpModule的那些事 可以自定义类实现IHttpModule接口,然后实现接口方法Init,Init方法可以得到HttpApplication 的实例化对象. 然后给对象的事件的注册各 ...

  6. 牛客网国庆集训派对Day6 题目 2018年

    链接:https://www.nowcoder.com/acm/contest/206/A来源:牛客网 Birthday 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 1048576 ...

  7. 『编程题全队』Alpha 阶段冲刺博客Day1

    『编程题全队』Alpha 阶段冲刺博客Day1 一.Alpha 阶段全组总任务 二.各个成员在 Alpha 阶段认领的任务 三.明日各个成员的任务安排 孙志威:实现基本的网络连接, 完成燃尽图模块 孙 ...

  8. eclipse 导入 gradle 项目遇到 UnsupportedConfigurationException 异常

    异常描述: org.eclipse.buildship.core.UnsupportedConfigurationException: Project at 'D:\XXXX_workspace\XX ...

  9. Java的Bean

    Bean的定义 遵循Sun的Java Bean规范编写的特殊类 Java Bean的规范 类的访问控制权限是public 类提供有一个无参的构造函数 类的属性的访问控制权限是private,通过set ...

  10. Day 5 笔记 dp动态规划

    Day 5 笔记 dp动态规划 一.动态规划的基本思路 就是用一些子状态来算出全局状态. 特点: 无后效性--狗熊掰棒子,所以滚动什么的最好了 可以分解性--每个大的状态可以分解成较小的步骤完成 dp ...