组件及事件处理

#JAVA基础实战——组件及事件处理

9.1Swing类概述及窗口

在这里插入图片描述
【窗口】:窗口也是一个容器,可以向窗口中添加组件。注意!窗口默认的被系统添加到显示屏上,不允许将一个窗口添加到另一个容器中。

1.JFame类是java提供的一个底层容器,即通常所称的窗口。其他组件必须添加到底层容器中,借以和操作系统信息交互。

2.JFrame类是Container类的间接子类。通过创建JFrame或其子类可创建一个窗口对象。

一、JFrame构造方法

JFrame();                          /*创建无标题窗口;*/
JFrame(String s)                   /*创建标题为s的窗口*/  
常用方法 :
public void setBounds(int a,int b,int Width,int Height)     /*(a,b)距屏幕左上的坐标及宽高*/
public viod setSize(int width,int height)               /*设置窗口的大小*/
public void setLocation(int x,int y)					/*设置窗口位置,默认为(0,0)*/
publc void setVisible(boolean b)                        /*设置窗口是否可见*/
public void setResizable(boolean b)                    	/*设置窗口是否可调,默认:可调*/
public void setDefaultCloseOPeration(int operation)     /设置单击窗口右上角关闭图标后的对应操作处理,如EXIR_ON_CLOSE(单击后关闭窗口)*/
public void setExtendedState(int state)                 /*设置窗口拓展状态*/
public void dispose()									/*撤销当前窗口,并释放占用资源*/
public void setLayout(LayoutManager mgr)			    /*设置此容器的布局管理器*/
public Component add(Component comp)				    /*将指定组件追加到此容器的尾部*/
public void setMenuBar(MenuBar mb)                      /*将此frame的菜单栏设置为指定的菜单栏*/
public void validate()                                  /*修改在容器中的子组件(添加、移除组件或更改和布局相关的信息)*/

二、菜单

1)菜单条(JComponent类的子类JMenubar负责创建菜单条
1.1JFrame类中有一个将菜单条放置到窗口中的方法:
setJMenuBar(JMenuBar bar)                       //该方法将菜单条添加到窗口的顶端。
1.2菜单条JMenuBar类的构造方法
JMenuBar();
JMenuBar Mbar=new JMenuBar()
2)菜单(JComponent类的子类JMenu负责创建菜单
2.1菜单JMenu类的构造方法
JMenu();
JMenu(String s);
JMenu m= new JMenu();
2.2常用方法
public void add(JMenuItem item)           //向菜单增加由参数item指定的菜单项
public JMenuItem getItem(int n)			 //得到指定索引处的菜单选项
public int getItemCount()                //得到菜单选项数目
3)菜单项(JComponet类的子类JMenuItem负责创建菜单项)
3.1主要方法
JMenuItem(String s)                               //构造有标题的菜单项
JMenuItem(String text,Icon icon)		          //构造有标题和图标的菜单项
public void setAccelerator(KeyStroke keyStroke)   //为菜单项设置快捷键

三、实战

import com.sun.javaws.util.JfxHelper;

import javax.print.DocFlavor;
import javax.swing.*;
import java.awt.*;
/*
* 菜单组件
*       菜单条 菜单 菜单项
*       -窗口中添加菜单条(MenuBar)
*       -菜单条上添加菜单(Menu)
*       -菜单上添加菜单项
*
* */

public class demo1 {
    public static void main(String[] args) {
        /*-------------创建窗口----------------*/
        //1.1创建窗口对象,无参构造方法
        //JFrame frame=new JFrame();

        //1.2创建窗口对象,带参数的构造方法
        JFrame frame = new JFrame("My Zone");

        //设置属性
        frame.setSize(600, 400);             /*设置窗口大小*/
        frame.setLocation(500, 150);                 /*设置窗口位置*/
        frame.setResizable(true);                        /*设置窗口大小可调*/

        //2.显示窗口
        frame.setVisible(true);
        //3.关闭窗口按钮
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        /*------------------菜单设置---------------------------*/
        //菜单条
        JMenuBar bar=new JMenuBar();
        frame.add(bar,BorderLayout.NORTH);

        //菜单
        JMenu menu1=new JMenu("文件");
        JMenu menu2=new JMenu("编辑");
        JMenu menu3=new JMenu("格式");

        bar.add(menu1);
        bar.add(menu2);
        bar.add(menu3);



        /*-------------------添加组件------------------*/

        JPanel panel = new JPanel();       //创建画板
        frame.add(panel);               //窗口中添加画板

        //标签设置
        JLabel label1 = new JLabel("账号");
        panel.add(label1);
        //文本框设置   行数只有一行,可设置长度
        JTextField text1 = new JTextField(10);
        panel.add(text1);
        //密码设置
        JLabel label2 = new JLabel("密码");
        JPasswordField text2 = new JPasswordField(10);
        panel.add(label2);
        panel.add(text2);
        //单选框
        JLabel label3 = new JLabel("性别");
        JRadioButton radio1 = new JRadioButton("男");
        JRadioButton radio2 = new JRadioButton("女");
        //只能选择其中一个,需要分组————同一组中只能选一个
        ButtonGroup group = new ButtonGroup();
        group.add(radio1);
        group.add(radio2);

        panel.add(label3);
        panel.add(radio1);
        panel.add(radio2);


        //复选框
        JLabel label4 = new JLabel("兴趣爱好");
        JCheckBox checkBox1=new JCheckBox("Java");
        JCheckBox checkBox2=new JCheckBox("Music");
        JCheckBox checkBox3=new JCheckBox("BasketBall");
        JCheckBox checkBox4=new JCheckBox("Game");
        panel.add(label4);
        panel.add(checkBox1);
        panel.add(checkBox2);
        panel.add(checkBox3);
        panel.add(checkBox4);


        //下拉菜单
        JLabel label5=new JLabel("居住地");
        Object arr[]={"北京","上海","重庆","广东","四川"};
        JComboBox citys=new JComboBox(arr);
        panel.add(label5);
        panel.add(citys);


        //文本区
        JLabel lable6=new JLabel("简介");
        JTextArea area=new JTextArea(10,10);
        panel.add(lable6);
        panel.add(area);
    }
}

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值