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

目录

一、基本组件介绍

二、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);
    }

 

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜到极致就是渣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值