【Java AWT 图形界面编程】Container 容器总结_java container(3)

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • Component add(Component c) : 向 Container 容器 中 添加 Component 组件 实例对象 , 返回被添加的组件 ; 注意 Container 是 Component 的子类 , 因此 此处也可以添加 Container 容器 ;
  • Component getComponentAt(int x, int y) : 返回指定 屏幕坐标 位置的组件 ;
  • int getComponentCount() : 获取 Container 容器 中的 Component 组件个数 ;
  • Component[] getComponent() : 获取 Container 容器中的所有 Component 组件 ;

五、Frame 窗口示例


首先 , 创建 Frame 实例对象 , 该对象就是 操作系统中应用软件的 窗口 ;

// 1. 创建窗口
Frame frame = new Frame("AWT 图形界面编程");

Frame 是 Window 的子类 ,

public class Frame extends Window implements MenuContainer

Window 是 Container 的子类 ;

public class Window extends Container implements Accessible

然后 , 设置窗口的位置 , 这里调用 Component#setLocation 函数 设置窗口在屏幕中的位置 ;

// 2. 设置窗口位置
frame.setLocation(50, 50);

再后 , 设置窗口大小 , 这里调用 Component#setSize 函数 设置窗口的像素大小 ;

// 3. 设置窗口大小
frame.setSize(800, 500);

最后 , 设置窗口可见 , 窗口默认不可见 , 需要手动设置可见性 ;

// 4. 设置窗口可见
frame.setVisible(true);

完整代码示例 :

import java.awt.\*;

public class HelloAWT {
    public static void main(String[] args) {
        // 1. 创建窗口
        Frame frame = new Frame("AWT 图形界面编程");

        // 2. 设置窗口位置
        frame.setLocation(50, 50);

        // 3. 设置窗口大小
        frame.setSize(800, 500);

        // 4. 设置窗口可见
        frame.setVisible(true);
    }
}

执行结果 : 执行后会在屏幕的 ( 100, 100 ) 位置显示该窗口 ;
在这里插入图片描述
注意 : 此时窗口无法关闭 , 需要停止程序运行来关闭窗口 ;

六、Panel 示例


Panel 不能独立存在 , 需要依附于 Window 存在 , 因此这里需要先创建 Frame 窗口 , 然后再向其中添加 Panel ;

完整代码示例 :

import java.awt.\*;

public class HelloAWT {
    public static void main(String[] args) {
        // 创建窗口
        Frame frame = new Frame("AWT 图形界面编程");

        // 创建 Panel
        Panel panel = new Panel();

        // 创建 文本框
        TextField textField = new TextField("测试文本框");

        // 创建 按钮
        Button button = new Button("测试按钮");

        // 向 Panel 中添加文本框和按钮
        panel.add(textField);
        panel.add(button);

        // 将 Panel 放到 Frame 中
        frame.add(panel);

        // 设置窗口位置
        frame.setLocation(50, 50);

        // 设置窗口大小
        frame.setSize(800, 500);

        // 设置窗口可见
        frame.setVisible(true);
    }
}

执行效果 :
在这里插入图片描述

七、窗口中文乱码处理


在上面的示例中 , 创建的按钮 Button button = new Button("测试按钮"); ,

按钮文本为 " 测试按钮 " , 但是在 窗口中显示时 , 显示的乱码 :

在这里插入图片描述

这是因为 Java 程序代码的编码方式是 UTF-8 格式的编码 ,

而 Windows 系统使用的是 GBK 格式的编码 ;

点击 IntelliJ IDEA 中 执行选项 中的 " Edit Configurations… " 选项 ,

在这里插入图片描述

在 " Run/Debug Configurations " 对话框中 , 点击 " Modify options " 按钮 , 选择 " Add VM options " 选项 ,

在这里插入图片描述

此时界面中会增加一个 VM options 输入框 ,
在这里插入图片描述
在上述 VM options 输入框中 , 输入

-Dfile.encoding=gbk

内容 ,
在这里插入图片描述
应用上述选项 ;

再次执行程序 , 此时界面按钮文本显示正常 ;

在这里插入图片描述

八、ScrollPane 可滚动容器示例


ScrollPane 可滚动容器 无法在 屏幕中独立存在 , 必须 依赖于 Frame 窗口而存在 ;

如果要 显示 ScrollPane 可滚动容器 , 需要 将其添加到 Frame 窗口中 才能显示出来 ;

代码示例 :

import java.awt.\*;

public class HelloAWT {
    public static void main(String[] args) {
        // 创建窗口
        Frame frame = new Frame("AWT 图形界面编程");

        // 创建 ScrollPan 容器实例对象
        // 默认情况下 ScrollPan 容器 只有在显示不下的时候才显示滚动条
        // 如果在构造函数中设置了 ScrollPane.SCROLLBARS\_ALWAYS 参数, 则总是显示滚动条
        ScrollPane scrollPane = new ScrollPane(ScrollPane.SCROLLBARS_ALWAYS);

        // 向 ScrollPan 容器中添加 Component 组件


![img](https://img-blog.csdnimg.cn/img_convert/2d8a03a2bbaa3edd06388ec334c76b24.png)
![img](https://img-blog.csdnimg.cn/img_convert/d44048796e68980b17a11af10105d6ba.png)

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618545628)**


**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

[外链图片转存中...(img-2VkwoTjy-1715699243330)]
[外链图片转存中...(img-kHO2856B-1715699243331)]

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618545628)**


**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

  • 18
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值