Java图形化界面---基本组件

news2024/11/18 3:01:29

目录

一、基本组件介绍

二、Diaolg对话框

(1)Dialog

(2) FileDialog


一、基本组件介绍

Button                      按钮
Canvas                     用于绘图的画布
Checkbox                复选框组件
CheckboxGroup     用于将多个Checkbox组件合成一组,一组Checkbox组件只有一个可                                     以被选中,即全部变成单选框组件
Choice                     下拉选择框
Frame                      窗口,在GUI程序里通过该类创建窗口
Label                       标签类,用于放置提示性文本
List                          列表框组件,可以添加多条项目
Panel                      不能单独存在的基本容器类,必须放到其他容器中
Scrollbar                滑动条组件,如果需要用户输入位于某个范围的值,就可以使用滑动条                                    组件,比如调色板中设置RGB得三个值所用的滑动条。当创建一个滑动                                  条时,必须指定它的方向,初始值,滑块的大小,最小值和最大值
ScrollPane             带水平及垂直滚动条的容器组件
TextArea                多行文本域
TextField                单行文本框

案列如图:

class Solution {
    //制造组件
    Frame s=new Frame("tittle");
    Box di=Box.createHorizontalBox();
    Box leftdi=Box.createHorizontalBox();
    Choice cho=new Choice();
    CheckboxGroup gr=new CheckboxGroup();
    Checkbox c1=new Checkbox("男",gr,true);
    Checkbox c2=new Checkbox("女",gr,false);
    Checkbox c3=new Checkbox("是否已婚?");
    Box lefttop=Box.createVerticalBox();
    Box top=Box.createHorizontalBox();

    public void init(){
        //先组装最底下的
        di.add(new TextField(30));
        di.add(new Button("确认"));
        s.add(di,BorderLayout.SOUTH);
        cho.add("红色");
        cho.add("蓝色");
        cho.add("白色");
        leftdi.add(cho);
        leftdi.add(c1);
        leftdi.add(c2);
        leftdi.add(c3);
        lefttop.add(new TextArea("你好",6,20,TextArea.SCROLLBARS_VERTICAL_ONLY));
        lefttop.add(leftdi);
        top.add(lefttop);
        top.add(new TextArea("hello",10,20,TextArea.SCROLLBARS_VERTICAL_ONLY));
        s.add(top);
        s.pack();
        s.setVisible(true);
    }

}






public class Test {
    public static void main(String[] args){
       Solution ss=new Solution();
       ss.init();

    }
}

二、Diaolg对话框

(1)Dialog

Dialog是Window类的子类,是一个容器类,属于特殊组件。对话框是可以独立存在的顶级窗口,因此用法与普通窗口的用法几乎一样,但是对话框需要注意以下两点:
(1)对话框通常依赖于其他窗口,就是通常需要有一个父窗口
(2)0对话框有非模式和模式两种,当某个模式对话框被打开后,该模式对话框总是位于它的父窗口之上,在模式对话框被关闭之前,父窗口无法获得焦点。

 构造方法
Dialog(Frame owener,String title boolean modal)  创建一个对话框对象,owner是当前对话框的父窗口,title是对话框的标题,modal是当前对话框是否是模式对话框

 

public static void main(String[] arsg){
        Frame s=new Frame("title");
        //创建水平
        Dialog d1=new Dialog(s,"模式对话框",true);
        Dialog d2=new Dialog(s,"非模式对话框",false);
        Button b1=new Button("模式对话框");
        Button b2=new Button("非模式对话框");

        b1.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                 d1.setVisible(true);
            }
        });
        b2.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                d2.setVisible(true);
            }
        });
        s.add(b1,BorderLayout.NORTH);
        s.add(b2);
        s.pack();
        s.setVisible(true);
    }

(2) FileDialog

Dialog类还有一个子类:FielDialog,他代表一个文件对话框,用于打开或者保存文件,需要注意的是FileDialog无法指定模态或者非模态,这是因为FileDialog依赖于运行平台的实现,如果运行平台的的文件对话框是模态的,那么FileDialog也是模态的,否则就是非模态的。


方法:
FileDialog(Frame parent,String title,int mode)  创建一个文本对话框
                                                                          parent指定父窗口
                                                                          title:对话框标题
                                                                          mode:文件对话框类型,如果指定为                                                                                        FileDialog.LOAD,用于打开文件,如果指为                                                                              FileDialog.SAVE用于保存文件


String getDirectory()                                          获取被打开或保存文件的绝对路径
String getFile()                                                  获取被打开或保存文件的文件名

 

案例如图:

 

public static void main(String[] args) {
        Frame s=new Frame("title");
        Button b2=new Button("保存文件");
        Button b1=new Button("打开文件");
        FileDialog f1=new FileDialog(s,"打开文件",FileDialog.LOAD);
        FileDialog f2=new FileDialog(s,"保存文件",FileDialog.SAVE);
        b1.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                f1.setVisible(true);
                System.out.println("打开的文件路径是"+f1.getDirectory()+",文件名="+f1.getFile());
            }
        });
        b2.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                f2.setVisible(true);
                System.out.println("保存的文件路径="+f2.getDirectory()+",文件名="+f2.getFile());
            }
        });
        s.add(b1);
        s.add(b2,BorderLayout.SOUTH);
        s.pack();
        s.setVisible(true);
    }

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/149546.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【阶段三】Python机器学习06篇:模型评估函数介绍(分类模型)

本篇的思维导图: 模型评估函数介绍(分类模型) accuracy_score()函数 作用:accuracy_score函数计算了模型准确率。在二分类或者多分类中,预测得到的标签,跟真实标签比较,计算准确率。 注意事项:在正负样本不平衡的情况下,准确率这个评价指标有很大的缺陷。比如数据样本…

数据库管理-第五十一期 新年新气象(20230108)

数据库管理 2023-01-08第五十一期 新年新气象1 新年快乐2 旧账3 软硬件对比4 新气象总结第五十一期 新年新气象 1 新年快乐 2023年来了,我也没有第一时间写一篇写文章给大家祝福,第一呢是因为某些原因元旦假期也没咋休息,其次就是因为本周又…

Allegro174版本新功能介绍之新增几种沿着目标打过孔模式

Allegro174版本新功能介绍之新增几种沿着目标打过孔模式 Allegro在低版本的时候,就已经有了沿着目标打过孔的功能,在升级到了174版本后,又新增了几种打过孔的模式,类似下图 以第一种模式举例介绍说明 点击Place

DFT知识点扫盲——DFT scan chain

先说一下tsmc的std celltsmc 7nm工艺下有专门的std synccell 命名如下:SDFSYNC1RPQD1XXXXVTSDFSYNC1SNQD1XXXXVTSDFSYNC1QD1XXXXVT不考虑VT, PWR和track,电压等差别,整个工艺库下只有这三种实际在项目中synccell一般直接上ULVT,既…

2022年第四届全国高校计算机能力挑战赛c++组决赛

A 题目描述 小丽好朋友的生日快到了,她打算做一些折纸放在幸运罐中作为生日礼物。小丽计划总共 需要a颗星星以及b只纸鹤。现在市场上卖的到的星星纸(折小星星的专用纸)一张可以折c颗小星星,一张纸鹤纸(折纸鹤的专用纸)可以折d只小纸鹤。她准备一共买k张…

【C++】模板进阶

​🌠 作者:阿亮joy. 🎆专栏:《吃透西嘎嘎》 🎇 座右铭:每个优秀的人都有一段沉默的时光,那段时光是付出了很多努力却得不到结果的日子,我们把它叫做扎根 目录👉非类型模…

三次握手四次挥手

三次握手&四次挥手 三次握手 四次挥手

RA-Net:一种混合深度注意感知网络,用于提取CT扫描中的肝脏和肿瘤

摘要 本文提出了一种三维混合残差注意感知分割网络,称为RA-UNet,用于提取肝脏感兴趣区域(VOI)并从这个感兴趣区域(VOI)中分割肿瘤。这个网络的基本架构为三维UNet。它结合了低层次特征图和高层次特征图提取…

【从零开始学习深度学习】39. 梯度下降优化之动量法介绍及其Pytorch实现

动量法的提出主要是为了优化在多变量目标函数中不同自变量梯度下降过程中更新速度快慢不均的问题,并且使目标函数向最优解更快移动。 目录1. 梯度下降中的问题2. 动量法介绍及原理2.1 动量法的数学解释---指数加权移动平均2.2 由指数加权移动平均理解动量法3. 从零实…

【HTML | CSS | Javascript】一款响应式精美简历模板分享(万字长文 | 附源码)

💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后…

JS面试题--深入JavaScript运行原理

深入JavaScript运行原理 JavaScript让人迷惑的知识点 JavaScript是一门编程语言 浏览器的工作原理 一般的浏览器有以下主要部分组成:1. 用户界面包括浏览器中可见的地址输入框,浏览器前进返回按钮,打开书签,打开历史记录等用户可…

NEUQ week10 题解

P1636 Einstein学画画 题目描述 Einstein 学起了画画。 此人比较懒~~,他希望用最少的笔画画出一张画…… 给定一个无向图,包含 nnn 个顶点(编号 1∼n1 \sim n1∼n),mmm 条边,求最少用多少笔可以画出图中…

对于NPS 的学习和认知

企业存在的唯一使命是创造顾客 —— 彼得德鲁克对于现代的多数组织而言,净推荐值(NPS)是一种衡量顾客满意度的“温度计”。NPS看似是一种管理工具,其实更多的是对企业基因的一种改变,其倡导的是内生性的问题&#xff0…

Java对象内存布局

对象内存构成 当我们在Java代码中创建对象后 会在堆中分配对应的内存 在 JVM 中,Java对象保存在堆中时,由以下三部分组成: 对象头(object header):包括了关于堆对象的布局、类型、GC状态、同步状态和标识…

概率论【随机事件和概率】--猴博士爱讲课

第一课 随机事件和概率 1/6 无放回类题目(一次摸多个) 例1.盒子里有3绿4红共7个小球,无放回的摸3个试求摸出1绿2红的概率例2.钱包里有3张100元,5张10元,3张5元的纸币,随机摸3张,试求摸出1张100,2张10的概率例1.盒子里…

【虚幻引擎】UE4 Http之异步请求数据

一、BlueprintAsyncActionBase UE提供了BlueprintAsyncActionBase类,实现异步加载的方式请求数据 虚幻的很多蓝图节点都采用了异步加载的方式 比如:延迟Delay,PlayMontage都是采用异步加载的方式进行实现 接下我们就用异步加载的方式实现HTT…

类和对象3

继承 继承是三大面向对象特征之一,继承无处不在,继承不仅是代码复用,精髓之处在于用抽象思维编写代码,以达到程序更强的可扩展性。 //继承一个父类,只能继承非私有的数据(属性和方法) //prote…

大数据之Kafka基本知识和架构介绍

文章目录前言一、Kafka的基本介绍(一)Kafka的特点二、Kafka的架构总结前言 #博学谷IT学习技术支持# 本篇文章主要从Kafka的基本介绍,Kafka的架构入手,如果有不恰当或者有疑问的地方,非常欢迎各位的意见和建议&#xf…

jetson连接PCF8591读取模拟电压值

文章目录一.PCF8591介绍PCF8591引脚说明PCF8591设置地址二.PCF8591模块功能描述:主要性能指标:三.PCF8591模块接口说明三.PCF8591连接jetson nano四.jetson nano 获取PCF8591模块的输入输出python版本代码C版本代码一.PCF8591介绍 PCF8591是一个单片集成、 单独供电、 低功耗、…

【Linux】Linux编译器—gcc/g++的使用

目录一.背景二.gcc如何生成1.预处理(进行宏替换)2.编译(生成汇编)3.汇编(生成机器可识别代码)4.链接(生成可执行文件或库文件)三.函数库1.函数库的分类(1)动态库(2)静态库2.区别3.拓展四.记忆1.选项2.后缀五.gcc选项该篇博客需要使用vim编译器&#xff0…