GUI初步和frame&panel
java的话这个GUI其实不是什么重点,但我们也要学习,重点是学习这种图形编程的思路。

java里面对于图形的一些类都封装在了AWT和它的一些子包里。AWT(抽象窗口开发包) 当然AWT是比较旧的开发包,新的叫swing,
所有可以显示出来的元素都叫component,然后下面那些什么Button,lable都是它的子类。,这里有个比较特殊的子类,container,在图形里面,container是用来容纳其他component的元素。然后这个container又分两种,一种是windows,它是可以独立显示的,哎就是我们平时的应用窗口,panel它也是容器,但它不可以独立显示。
windows又分两种,一种是frame,就是我们平时的应用窗口,一种是dialog,对话框,就是那种框你不关闭掉它其他程序内容你无法操作。

下面看frame

一些很容易理解的方法:

*********基本窗口显示*********:
import java.awt.*; public class TestFrame {
public static void main(String[] args) {
Frame f = new Frame("My first windows!!");//传进来的这个参数就是设置在titlebar的文字。
f.setSize(1000,1000);//大小
f.setBackground(Color.blue);//设置背景颜色
f.setLocation(485,10);//设它在屏幕上的位置(类比像素那什么1080*888)
//f.setResizable(false);//设置窗口可不可以调节大小
f.setVisible(true);//Frame f = new Frame()这句话只是说建立了这个窗口对象,想要看得到还有用这个方法。
}
}
显示多个不同的窗口
import java.awt.*;
public class TestMultiFrame {
public static void main(String[] args) {
MyFrame myFrame1 = new MyFrame(100,100,200,200,Color.BLUE);
MyFrame myFrame2 = new MyFrame(300,100,200,200,Color.YELLOW);
MyFrame myFrame3 = new MyFrame(100,300,200,200,Color.GREEN);
MyFrame myFrame4 = new MyFrame(300,300,200,200,Color.WHITE);
}
}
class MyFrame extends Frame {
static int id = 0;
MyFrame(int x , int y , int w , int h , Color color) {
super("MyName"+id);//调用父类的构造方法,即取名字那个
setBackground(color);
setLayout(null);//把自己的布局管理器设为空,以后会讲,现在先照抄
setBounds(x,y,w,h);
setVisible(true);
}
}
现在到panel:

import java.awt.*;
public class TestPanel1 {
public static void main(String[] args) {
Frame f = new Frame("Java with Panel");
Panel p = new Panel(null);
f.setLayout(null);
f.setBounds(300,300,500,500);
f.setBackground(new Color(0,0,100));
p.setBounds(50,50,400,400);//这里的50,50的位置不是根据屏幕坐标来的,而是根据它所在的frame来的
p.setBackground(new Color(204,204,255));
f.add(p);
f.setVisible(true);
}
}
import java.awt.*;
public class TestMultiPanel {
public static void main(String[] args) {
MyFrame2 f2 = new MyFrame2("MyFrame with panel",300,300,400,300);
}
}
class MyFrame2 extends Frame {
private Panel p1,p2,p3,p4;
MyFrame2(String s,int x,int y,int w,int h) {
super(s);
setLayout(null);
p1 = new Panel(null);//代表panel不带自己的布局管理器
p2 = new Panel(null);
p3 = new Panel(null);
p4 = new Panel(null);
p1.setBounds(0,0,w/2,h/2);
p2.setBounds(0,h/2,w/2,h/2);
p3.setBounds(w/2,0,w/2,h/2);
p4.setBounds(w/2,h/2,w/2,h/2);
p1.setBackground(Color.BLUE);
p2.setBackground(Color.GREEN);
p3.setBackground(Color.YELLOW);
p4.setBackground(Color.WHITE);
add(p1);//调用父类的方法
add(p2);
add(p3);
add(p4);
setBounds(x,y,w,h);
setVisible(true);
}
}
GUI初步和frame&panel的更多相关文章
- JAVA之旅(三十一)——JAVA的图形化界面,GUI布局,Frame,GUI事件监听机制,Action事件,鼠标事件
JAVA之旅(三十一)--JAVA的图形化界面,GUI布局,Frame,GUI事件监听机制,Action事件,鼠标事件 有段时间没有更新JAVA了,我们今天来说一下JAVA中的图形化界面,也就是GUI ...
- 第34天学习打卡(GUI编程之组件和容器 frame panel 布局管理 事件监听 多个按钮共享一个事件 )
GUI编程 组件 窗口 弹窗 面板 文本框 列表框 按钮 图片 监听事件 鼠标 键盘事件 破解工具 1 简介 GUi的核心技术:Swing AWT 1.界面不美观 2.需要jre环境 为什么要学习GU ...
- GUI概述与Frame演示
java 图形化界面的对象存在这两个包中: java.awt :Abstract WindowsToolkit(抽象窗口工具包)需要调用本地系统方法实现功能,属重量级控件 javax.swing:在a ...
- python GUI初步
- Java基础--Java---IO流------GUI(布局)、Frame、事件监听机制、窗体事件、Action事件、鼠标事件、对话框Dialog、键盘事件、菜单
* 创建图形化界面 * 1.创建frame窗体 * 2.对窗体进行基本设置 * 比如大小.位置.布局 * 3.定义组件 * 4.将组件通过窗体的add方法添加到窗体 * 5.让窗体显 ...
- GUI容器之Frame
Frame public class MyFrame { public static void main(String[] args) { //创建一个Frame对象 Frame frame = ne ...
- java gui 之容器组件
演示Frame和Panel package unit7; import java.awt.*; public class SimpleFrame { public static void main(S ...
- Java程序设计11——GUI设计与事件处理A
1.GUI设计 Java使用AWT和Swing类完成图形用户界面编程,AWT全称是Abstract Window Toolkit,即抽象窗口工具集,它是Sun最早提供的GUI库,只是这个库功能比较有限 ...
- Java笔记 - GUI编程
一.图形界面开发 1.AWT开发 AWT(Abstract Window Toolkit)在Windows.Linux提供的图形窗口之上,再次进行了抽象,为不同语言开发的程序提供统一定义的图形接口,可 ...
随机推荐
- android动画具体解释六 XML中定义动画
动画View 属性动画系统同意动画View对象并提供非常多比view动画系统更高级的功能.view动画系统通过改变绘制方式来变换View对象,view动画是被view的容器所处理的,由于View本身没 ...
- 【Mongodb教程 第三课 】MongoDB 删除数据库
dropDatabase() 方法 MongoDB db.dropDatabase() 命令是用来删除一个现有的数据库. 语法: dropDatabase() 命令的基本语法如下: db.dropDa ...
- centos 安装mysql时错误unknown variable 'defaults-file=/opt/redmine-2.6.0-2/mysql/my.cnf'
找到my.cnf所在目录.运行 chmod 664 my.cnf,再启动mysql成功
- Lnixu Bash
一.简单命令 1.创建文件(vi) vi hellowold.txt2.创建目录(mkdir) mkdir linux_bash3.删除文件(rm) rm helloworld.txt4.复制文件(c ...
- Ubuntu下Jupyter Notebook的安装
pip install --upgrade pip //更新pip pip install jupyter sudo apt install jupyter-notebook 运行 jupyter-n ...
- 【SCOI 2005】 扫雷
[题目链接] 点击打开链接 [算法] 只要第一行第一个数确定了,后面的数也都确定了 递推两遍即可 [代码] #include<bits/stdc++.h> using namespace ...
- Splay基本操作
我们以一道题来引入吧! 传送门 题目说的很清楚,我们的数据结构要支持:插入x数,删除x数,查询数的排名和排名为x的数,求一个数前驱后继. 似乎用啥现有的数据结构都很难做到在O(nlogn)的复杂度中把 ...
- 基于 IOCP 的通用异步 Windows Socket TCP 高性能服务端组件的设计与实现
设计概述 服务端通信组件的设计是一项非常严谨的工作,其中性能.伸缩性和稳定性是必须考虑的硬性质量指标,若要把组件设计为通用组件提供给多种已知或未知的上层应用使用,则设计的难度更会大大增加,通用性.可用 ...
- 小程序-demo:知乎日报
ylbtech-小程序-demo:知乎日报 1.返回顶部 0. 1.app.js //app.js App({ onLaunch: function () { //调用API从本地缓存 ...
- UI:文件操作、通知中心
对文件的操作: #define PATH @"/Users/mac/Desktop/未命名文件夹" #define ERROR(a) if(a){NSLog(@"%@&q ...