Frame

这个博客展示了如何使用Java AWT库创建并管理多个窗口。在第一个示例中,创建了一个不可调整大小的绿色背景窗口。当尝试关闭程序时,窗口无法正常关闭。在第二个示例中,通过`MyFrame`类创建了四个相同颜色的窗口,每个窗口具有不同的位置,但同样遇到关闭问题。这两个例子揭示了在Java图形用户界面编程中处理窗口关闭事件的重要性。
package com.han.lesson01;
//Gui第一个界面
import java.awt.*;
public class TextFrame {
    public static void main(String[] args) {
        Frame frame = new Frame("我的第一个java界面窗口");
        //设置可见性
        frame.setVisible(true);
        //设置大小
        frame.setSize(400,400);
        //设置背景颜色
        frame.setBackground(new Color(46, 226, 40));
        //弹出的初始位置
        frame.setLocation(200,200);
        //设置大小固定
        frame.setResizable(false);


    }
}

运行结果

问题:程序运行后关闭不了,关闭java程序

package com.han.lesson01;
import java.awt.*;
public class TextFrame2 {
    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.blue);
        MyFrame myFrame3 = new MyFrame(100, 300, 200, 200, Color.blue);
        MyFrame myFrame4 = new MyFrame(300, 300, 200, 200, Color.blue);

    }
}
class MyFrame extends Frame{
    static int id=0; //可能存在多个窗口,我们需要一个计数器
    public MyFrame(int x,int y,int w,int h,Color color){
        super("MyFrame"+(++id));
        setBackground(color);
        setBounds(x,y,w,h);
        setVisible(true);
    }

}

 

 

在计算机图形用户界面(GUI)编程中,`Frame` 是一个重要的概念,尤其是在像 Java 的 AWT 和 Swing 这样的 GUI 工具包里。简单来说,`Frame` 就是我们常说的应用程序主窗口。它是应用程序的主要容器,在其中可以添加各种控件(例如按钮、文本框等),并组织它们形成完整的用户交互界面。 ### 具体介绍 #### 1. **AWT 中的 Frame** - 在早期的 Java Abstract Window Toolkit (AWT) 中,`Frame` 类用于创建一个基础的顶层窗口。 - 它没有默认的关闭操作,开发者需要手动处理窗口的关闭事件。 **示例代码:** ```java import java.awt.Frame; public class MyFirstFrame { public static void main(String[] args){ Frame f = new Frame("Hello World!"); f.setSize(400, 300); // 设置大小 f.setVisible(true); // 显示窗口 } } ``` #### 2. **Swing 中的 JFrame** 随着技术发展,Java 推出了功能更强大的 Swing 库,并引入了 `JFrame` 替代传统的 AWT `Frame`。相比前者,`JFrame` 提供更多的特性和更好的跨平台支持。 **区别在于:** - `JFrame` 属于轻量级组件,能与其他 Swing 组件更好地兼容; - 默认包含了一个系统菜单栏及多种便捷方法设置窗口属性; **典型用法:** ```java import javax.swing.JFrame; import javax.swing.JButton; public class MySwingFrame { public static void main(String[] args){ JFrame frame = new JFrame("My First JFrame"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JButton button = new JButton("Click Me!"); frame.getContentPane().add(button); frame.pack(); // 自动调整尺寸适应内部组件 frame.setVisible(true); } } ``` --- ### 总结 无论是 `Frame` 还是改进版的 `JFrame`,都是构建桌面应用不可或缺的基础元素之一,熟悉其基本特性对于学习 GUI 编程非常重要!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值