热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

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

这篇文章主要介绍了javaGUI界面,结合简单实例形式分析了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程序设计有所帮助。


推荐阅读
  • 本文探讨了在不同场景下如何高效且安全地存储Token,包括使用定时器刷新、数据库存储等方法,并针对个人开发者与第三方服务平台的不同需求提供了具体建议。 ... [详细]
  • 前端技术分享——利用Canvas绘制鼠标轨迹
    作为一名前端开发者,我已经积累了Vue、React、正则表达式、算法以及小程序等方面的技能,但Canvas一直是我的盲区。因此,我在2018年为自己设定了一个新的学习目标:掌握Canvas,特别是如何使用它来创建CSS3难以实现的动态效果。 ... [详细]
  • 本文将详细介绍如何配置并整合MVP架构、Retrofit网络请求库、Dagger2依赖注入框架以及RxAndroid响应式编程库,构建高效、模块化的Android应用。 ... [详细]
  • 如何为PDF文档添加水印?简单步骤实现
    为了增强PDF文档的安全性和版权保护,添加水印是一个有效的方法。本文将介绍如何通过专业软件或在线工具轻松为PDF文档添加水印,确保您的文档在共享时仍能保持其独特性和安全性。 ... [详细]
  • 本文汇集了作者在准备研究生入学考试过程中的心得体会,包括备考策略、复习重点及应对考试的心理调适技巧,旨在为即将参加考研的学生提供实用建议。 ... [详细]
  • 使用R语言进行Foodmart数据的关联规则分析与可视化
    本文探讨了如何利用R语言中的arules和arulesViz包对Foodmart数据集进行关联规则的挖掘与可视化。文章首先介绍了数据集的基本情况,然后逐步展示了如何进行数据预处理、规则挖掘及结果的图形化呈现。 ... [详细]
  • 分布式计算助力链力实现毫秒级安全响应,确保100%数据准确性
    随着分布式计算技术的发展,其在数据存储、文件传输、在线视频、社交平台及去中心化金融等多个领域的应用日益广泛。国际知名企业如Firefox、Google、Opera、Netflix、OpenBazaar等均已采用该技术,推动了技术创新和服务升级。 ... [详细]
  • 垂直泊车路径设计
    本文探讨了垂直泊车路径的设计原理与实现方法。垂直泊车是指汽车从特定位置出发,经过一系列横向和纵向移动,最终达到与车位垂直停放的状态。路径设计旨在确保泊车过程既高效又安全。 ... [详细]
  • 来自FallDream的博客,未经允许,请勿转载,谢谢。一天一套noi简直了.昨天勉强做完了noi2011今天教练又丢出来一套noi ... [详细]
  • This article explores the process of integrating Promises into Ext Ajax calls for a more functional programming approach, along with detailed steps on testing these asynchronous operations. ... [详细]
  • 深入理解MongoDB的SCRAM-SHA-1认证流程
    本文详细解析了MongoDB的SCRAM-SHA-1认证机制的具体步骤,旨在帮助读者深入了解这一安全认证方法的工作原理及其在实际应用中的重要性。 ... [详细]
  • Web开发实践:创建连连看小游戏
    本文详细介绍了如何在Web环境中开发一款连连看小游戏,适合初学者和技术爱好者参考。通过本文,您将了解游戏的基本结构、连线算法以及实现方法。 ... [详细]
  • 本文介绍了如何通过 ADB 命令行工具启动和停止 Android 应用。通过简单的命令,您可以轻松地控制设备上的应用运行状态。 ... [详细]
  • 本文介绍了如何使用jQuery获取浏览器窗口的可视区域高度、文档的整体高度以及宽度等关键尺寸信息,包括边界、填充和边距在内的完整尺寸。 ... [详细]
  • SPFA算法详解与应用
    当图中包含负权边时,传统的最短路径算法如Dijkstra不再适用,而Bellman-Ford算法虽然能解决问题,但其时间复杂度过高。SPFA算法作为一种改进的Bellman-Ford算法,能够在多数情况下提供更高效的解决方案。本文将详细介绍SPFA算法的原理、实现步骤及其应用场景。 ... [详细]
author-avatar
蓝瑟
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有