java GUI界面初步入门示例【AWT包】

 更新时间:2020年01月22日 08:50:35   作者:qq_42412646  
这篇文章主要介绍了java GUI界面,结合简单实例形式分析了java使用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);
    }
}

更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总

希望本文所述对大家java程序设计有所帮助。

相关文章

  • java 2d画图示例分享(用java画图)

    java 2d画图示例分享(用java画图)

    这篇文章主要介绍了java 2D画图示例(用java画图),需要的朋友可以参考下
    2014-04-04
  • SpringBoot+aop实现主从数据库的读写分离操作

    SpringBoot+aop实现主从数据库的读写分离操作

    读写分离的作用是为了缓解写库,也就是主库的压力,但一定要基于数据一致性的原则,就是保证主从库之间的数据一定要一致,这篇文章给大家介绍SpringBoot+aop实现主从数据库的读写分离操作,感兴趣的朋友跟随小编一起看看吧
    2024-03-03
  • Spring Boot webflux使用方法解析

    Spring Boot webflux使用方法解析

    这篇文章主要介绍了Spring Boot webflux使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • spring boot如何配置静态路径详解(404出现的坑)

    spring boot如何配置静态路径详解(404出现的坑)

    这篇文章主要给大家介绍了关于spring boot如何配置静态路径的相关资料,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-02-02
  • Mybatis-plus动态条件查询QueryWrapper的使用案例

    Mybatis-plus动态条件查询QueryWrapper的使用案例

    mybatis-plus框架功能很强大,把很多功能都集成了,下面这篇文章主要给大家介绍了关于Mybatis-plus动态条件查询QueryWrapper的使用教程,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • spring自定义注解及使用方法详细例子

    spring自定义注解及使用方法详细例子

    这篇文章主要给大家介绍了关于spring自定义注解及使用方法的相关资料,Spring 是一个非常强大的框架,可以使用自定义注解来完成许多任务,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-01-01
  • java创建jar包并被项目引用步骤详解

    java创建jar包并被项目引用步骤详解

    这篇文章主要介绍了java创建jar包并被项目引用步骤详解,jar包实现了特定功能的,java字节码文件的压缩包,更多相关内容需要的朋友可以参考一下
    2022-07-07
  • IDEA设置maven修改settings.xml配置文件无法加载仓库的解决方案

    IDEA设置maven修改settings.xml配置文件无法加载仓库的解决方案

    这篇文章主要介绍了IDEA设置maven修改settings.xml配置文件无法加载仓库的解决方案,帮助大家更好的利用IDEA进行JAVA的开发学习,感兴趣的朋友可以了解下
    2021-01-01
  • Spring中的Aware接口详细解析

    Spring中的Aware接口详细解析

    这篇文章主要介绍了Spring中的Aware接口详细解析,Aware是一个具有标识作用的超级接口,具体实现是有子接口去决定的,但是子接口至少要有一个带一个参数的且返回是空的方法,需要的朋友可以参考下
    2023-12-12
  • springBoot mybatis 包扫描实例

    springBoot mybatis 包扫描实例

    这篇文章主要介绍了springBoot mybatis 包扫描实例,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07

最新评论