#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);
}
}