java GUI界面初步入门示例【AWT包】
本文实例讲述了java gui界面。分享给大家供大家参考,具体如下:
java不太擅长做图形界面;
awt是一种较老的包,最新的是swing包,由于其包内调用了一部分的操作系统的内容,所以无法做到完全的跨平台。
对于每一个图形元素都是一个component类,其包含container,container是一个component,同时他又作为component的一个容器类,又可以存放component。在container中还有window和panel两种类,其中window类是独立的,可以直接显示,而panel类不独立,不能直接显示,必须依附于window类进行显示。在window下面还有frame和dialog,panel下面有applet,其中frame是一个窗口,而dialog是一个对话框,对于对话框有必须处理和不必须处理两种。
几个frame/panel实例
instance1:
添加几个基本的元素,构造方法一:建立一个frame对象
import java.awt.*; public class testgui { public static void main(string[] args) { frame f = new frame("my frame") ; f.setbounds(30, 30, 300, 300); f.setbackground(color.blue); f.setresizable(true); f.setvisible(true); } }
注:在方法中,location用来设置图形的位置,size用来设置图形的大小,而用bounds可以直接设置其位置和大小
instance2:
构造方法二,通过建立一个新的类进行创建,其中该类要继承frame
import java.awt.color; import java.awt.frame; public class testframe2 { public static void main(string[] args) throws exception{ new myframe1(100,100,200,200,color.blue); new myframe1(100,300,200,200,color.cyan); new myframe1(300,100,200,200,color.gray); new myframe1(300,300,200,200,color.magenta); } } class myframe1 extends frame{ static int d = 0; myframe1(int x,int y,int w,int z,color c){ super("myframe " + ++d); // settitle("myframe " + ++d); setbounds(x,y,w,z); setbackground(c); setresizable(true); setvisible(true); } }
注:可以直接new一个对象而不给其指定名称,这样已经在内存里有了空间但是没有名称调用,
对于myframe其继承自frame用其构造方法给图形起一个名字,也可以用settitle方法,但是用super()时必须要求变量为静态的。(??)
panel:
instance 3:
import java.awt.*; public class testpanel { public static void main(string[] args) { frame f1 = new frame("myframe 1"); panel p1 = new panel(); f1.setbounds(300, 300, 600, 600); f1.setbackground(color.blue); f1.setlayout(null); p1.setbounds(100, 100, 200, 200); p1.setbackground(color.dark_gray); f1.add(p1); f1.setresizable(true); p1.setvisible(true); f1.setvisible(true); } }
注:对于panel,由于其不能独立的显示所以必须要把它加入到一个window类中进行显示,
其和window类一样,必须调用其setvisible方法才能看的见。此外,这里setlayout参数是null,对应的对window进行拖动的时候,其内部的panel是不变的。
instance 4:
import java.awt.*; public class testpanel2 { public static void main(string[] args) { new myframe4("myframe h",300,300,400,400); } } class myframe4 extends frame{ // private penal p1,p2,p3,p4; myframe4(string s, int x,int y,int w,int h){ super(s); setbounds(x,y,w,h); setbackground(color.blue); setlayout(null); setresizable(true); setvisible(true); panel p1 = new panel(null); panel p2 = new panel(null); panel p3 = new panel(null); panel p4 = new panel(null); p1.setbounds(0, 0, w/2, h/2); p3.setbounds(w/2, 0, w/2, h/2); p2.setbounds(0, h/2, w/2, h/2); p4.setbounds(w/2, h/2,w/2, h/2); add(p1); add(p2); add(p3); add(p4); p1.setbackground(color.cyan); p2.setbackground(color.gray); p3.setbackground(color.green); p4.setbackground(color.red); p1.setvisible(true); p2.setvisible(true); p3.setvisible(true); p4.setvisible(true); } }