********************第16章 GUI编程 **************************

一.什么是GUI

GUI= Graphical User Interface 图形用户接口 图形用户界面

GUI是用java来编写带界面的应用程序

两套技术

1. AWT(Abstract Window Toolkit)

抽象窗口工具集

图形界面不是java本身实现的,其实是依赖于操作系统的底层函数

为了让同一个java程序运行在不同的操作系统上效果一致,所以

awt技术是抽取所有操作系统中共有的函数,这样既然是函数的交集

肯定功能比较单一

2. Swing

纯java实现的 由于本身不依赖于操作系统的底层函数 所以组件比较丰富

也可以跨平台

二.why

1. Awt 和Swing 虽然过时了,但是图形用户界面的编程思想并没有过时,我们学习

这一章主要学习GUI编程的思想,为以后学习Android等打下一个基础

2. 为了做初级项目

*******************普通组件的继承关系图和常用方法******************

普通组件的常用方法

1. 设置位置

setLocation(int x,int y)

2. 设置大小

setSize(int width,int height)

3. 设置位置和大小

setBounds(int x,int y,int width,int height)

4. 设置组件的可见性

setVisible(boolean flag)

容器的常用方法

容器: 它是一个特殊的组件,可以放其他的组件

1. 往容器中添加组件

Component add(Component component)

...

**********************容器组件的继承关系图*************************

一.window(窗口)

顶级容器 可以独立使用

二.Panel(面板)

不是顶级容器 只能放在其他容器中使用(Window或Panel)

早期把java程序分为两大类:

1. application

2. applet 可以嵌入到网页中的java小程序

applet后来被flash技术打败了

**********************************Frame****************************************

顶级容器,可以独立使用

Frame代表常见的窗口,它是Window类的子类,具有如下几个特征:

1.Frame对象有标题,允许通过拖拉来改变窗口的位置、大小

2.初始化时为不可见,可用setVisible(true)使其显示出来

3.默认使用BorderLayout作为布局管理器(稍后再说)

package com.chapter16;

import java.awt.Frame;

public class TestFrame {

public static void main(String[] args) {

Frame frame = new Frame("我是标题");

frame.setLocation(50, 150);

frame.setSize(300, 200);

frame.setVisible(true);

}

}

**********************************Panel****************************************

不是顶级容器,不可以独立使用,必须放到其他容器中(例如Window或Panel)

1.可作为容器来盛装其他组件,为放置组件提供空间

2.不能单独存在,必须放到其他容器中

3.默认使用FlowLayout作为其布局管理器

演示代码:

package com.chapter16;

import java.awt.Button;

import java.awt.Frame;

import java.awt.Panel;

import java.awt.TextField;

public class TestPanel {

public static void main(String[] args) {

Frame frame = new Frame("我是标题");

frame.setLocation(50, 150);

frame.setSize(250, 120);

//测试Panel

Panel panel = new Panel();

panel.add(new TextField(20));

panel.add(new Button("发送"));

//再把panel放到frame中

frame.add(panel);

frame.setVisible(true);

}

}

**********************************ScrollPane**************************************

带有滚动条的面板

把Panel 改成 ScrollPane 以后 单行文本框没了,原因是被按钮盖住了..

原因ScrollPane默认是BorderLayout 边框布局 如果添加的时候 没有指定添加元素的位置 默认添加到中间

两个组件都添加到中间 按钮就把单行文本框覆盖了

演示代码:

package com.chapter16;

import java.awt.Frame;

import java.awt.ScrollPane;

import java.awt.TextArea;

public class TestScrollPane {

public static void main(String[] args) {

Frame frame = new Frame("我是标题");

frame.setLocation(50, 150);

frame.setSize(250, 120);

//测试Panel

//ScrollPane.SCROLLBARS_AS_NEEDED 默认值 需要的时候再加滚动条

ScrollPane panel = new ScrollPane(ScrollPane.SCROLLBARS_ALWAYS);

panel.add(new TextArea(5,20));

//panel.add(new Button("发送"));

//再把panel放到frame中

frame.add(panel);

frame.setVisible(true);

}

}

*******************************布局管理器**************************

一.为什么用布局管理器

使用了布局管理器以后,程序员就不需要主动调整控件的大小了, 由布局管理器帮你实现(相当于一个适配器)

要不然程序员一个一个调整组件的大小太麻烦了

二.如何设置容器的布局管理器

布局管理器类的对象

容器对象.setLayout(new XXXLayout());

三.常见的布局管理器(6种)

1. FlowLayout 流式布局

就像在txt或doc文档中打字一样,文字出现的顺序就是往流式布局 中添加的顺序

Panel 默认是流式布局

2. BorderLayout 边框布局

Frame 默认是边框布局的

类似4个人围桌 打麻将

如果想添加五个以上的组件,可以先把组件添加到Panel中,然后把Panel添加到 边框布局的容器中

java gui是什么_Java GUI编程(一)相关推荐

  1. java gui 布局 旋转_JAVA GUI编程之布局管理器

    JAVA的GUI(图形用户界面)由各种组件构成,主要分为AWT组件(java.awt)以及功能更强的Swing组件(javax.swing)两种. 组件可以分为容器组件和非容器组件.容器组件是指可以包 ...

  2. java swing界面工具_Java GUI swing 工具包使用总结

    前言 最近用 swing 写了一个GUI图片接入的工具, 方便用于将图片数据通过接口推送到 web 项目中 做界面有点像写原生的 CSS 技术储备 java 基础知识, 面向对象封装, 继承, 接口, ...

  3. java paint的使用_java GUI编程之paint绘制操作示例

    本文实例讲述了java GUI编程之paint绘制操作.分享给大家供大家参考,具体如下: import java.awt.*; public class Testpint { public stati ...

  4. java gui有哪些_Java GUI简介

    Java有2个GUI库:AWT.Swing. AWT是SUN最早提供的GUI库,依赖本地平台,界面不好看,功能有限.之后推出了Swing,Swing并没有完全替代AWT,而是建立在AWT基础上的.Sw ...

  5. java gui 窗口 传值_java – GUI – 在不同窗口之间传输数据(J...

    我已经开始使用bash脚本以及一些java(控制台)和python来满足我的编程需求.想想我将工作整理到某个图形环境的时候,我偶然发现了一个基本的任务,让我现在几个小时都挂了. main函数在启动主应 ...

  6. java mysql查询界面_Java GUI小程序 实现数据库查询界面-Go语言中文社区

    源代码如下:package 数据库图形化界面3; import java.awt.*; import javax.swing.*; import java.awt.event.*; public cl ...

  7. java gui 按键 数组_java GUI分配数组值

    好的,所以这是一个非常基本的例子.它需要更多的工作和优化,但应该让你朝着正确的方向前进 import java.awt.Color; import java.awt.Dimension; import ...

  8. java gui 跳转_java GUI点击一个按钮怎么跳转到下一个窗口

    想从登录的窗口跳转到注册的窗口,这样写点击注册为什么不跳转packageview;importjava.awt.GridLayout;importjava.awt.event.ActionEvent; ...

  9. java textarea 取值_java Gui中如何获取TextArea的值

    展开全部 可以使用 JTextArea 的 getText() 方法获取文62616964757a686964616fe78988e69d8331333365653830件内容,如下:import j ...

最新文章

  1. LeetCode简单题之两句话中的不常见单词
  2. 【AWT编写图形用户界面】GUI编程之AWT讲解(看不懂你来打我)
  3. Java中Date及Timestamp时间相关内容【转】
  4. Delphi的类与继承
  5. python还是hadoop_使用Python和Hadoop Streaming编写MapReduce
  6. Java将一段逗号分割的字符串转换成一个数组(亲测)
  7. Linux多线程编程(一)---多线程基本编程
  8. Java10来了,来看看它一同发布的全新JIT编译器
  9. Bitcoin比特币与BlockChain区块链技术
  10. OpenLayers相关资料
  11. 在react中使用svg的各种骚姿势 1
  12. 百度霸屏技术的源码发布
  13. 十六进制格式颜色转换成RGB格式颜色
  14. python模拟登陆微博_超详细的Python实现微博模拟登陆,小白都能懂
  15. 《数据库原理与应用》马春梅 禹继国 黄宝贵 祝永志 编著 P30 六个表的实现
  16. 影响未来的十大网络技术
  17. humanoid ik unity 配件 animation的问题
  18. 空域变换-直方图局部处理(CLAHE)
  19. zf3 php,php – ZF3中的ServiceManager
  20. Ueditor(三):将图片上传至项目外的目录

热门文章

  1. TimescaleDB的结构初识
  2. 摩托车头盔CCC认证
  3. 如何让无源蜂鸣器响起来
  4. Elo Rating System 简介及其在游戏中的运用
  5. 81章 老子1章到_老子1章2章80章81章
  6. 如何用计算机名查看共享打印机,共享打印机怎么连接?打印机如何共享?查看图文帮你解决...
  7. 自我管理的经典书籍推荐:《自我管理必读12篇》
  8. matlab 小红点怎么标,三边测量法定位,matlab仿真 请大侠调试一下,谢谢
  9. 偏态分布学习笔记(期望,中位数,众数)
  10. 64位操作系统和32位的区别介绍【详解】