java panel frame_GUI初步和frame&panel

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

dc1a50441832d266955a2382732629bb.png

java里面对于图形的一些类都封装在了AWT和它的一些子包里。AWT(抽象窗口开发包)            当然AWT是比较旧的开发包,新的叫swing,

所有可以显示出来的元素都叫component,然后下面那些什么Button,lable都是它的子类。,这里有个比较特殊的子类,container,在图形里面,container是用来容纳其他component的元素。然后这个container又分两种,一种是windows,它是可以独立显示的,哎就是我们平时的应用窗口,panel它也是容器,但它不可以独立显示。

windows又分两种,一种是frame,就是我们平时的应用窗口,一种是dialog,对话框,就是那种框你不关闭掉它其他程序内容你无法操作。

61b9447f6dc10d882a9fd57c7db338b6.png

下面看frame

7cf9352e43b1833a679e74a97c96881d.png

一些很容易理解的方法:

c03ec7b35e01b95615c736ef53c5f594.png

*********基本窗口显示*********:

import java.awt.*;public classTestFrame {public static voidmain(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 classTestMultiFrame {public static voidmain(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 extendsFrame {static int id = 0;

MyFrame(int x , int y , int w , inth , Color color) {super("MyName"+id);//调用父类的构造方法,即取名字那个

setBackground(color);

setLayout(null);//把自己的布局管理器设为空,以后会讲,现在先照抄

setBounds(x,y,w,h);

setVisible(true);

}

}

现在到panel:

d4d133ec6d5747350fb40ecb92c508db.png

import java.awt.*;public classTestPanel1 {public static voidmain(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 classTestMultiPanel {public static voidmain(String[] args) {

MyFrame2 f2= new MyFrame2("MyFrame with panel",300,300,400,300);

}

}class MyFrame2 extendsFrame {privatePanel p1,p2,p3,p4;

MyFrame2(String s,int x,int y,int w,inth) {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);

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值