Java:组件及事件处理

一、窗口

  • Java 把 Component 的子类或者间接类创建的对象称为组件
  • Java 把 Container 的子类或间接子类创建的对象称为为容器
  • 容器可以调用 add() 方法添加组件到容器
  • 容器可以调用removeAll 方法可以移调所用组件
  • 调用remove(Component c)方法可以移调指定参数c 的组件
  • 容器本身是组件,所以容器可以嵌套容器

JFrame

  1. JFrame 是Container 类的间接子类,可以向窗口添加组件,该类创建的对象是底层容器
  2. JFrame()创建无标题窗口; JFrame (String s)创建标题为s 的窗口;
  3. public void setVisible(boolean b) 设置窗口是否可见,默认不可见
  4. public void dispose() 撤销当前窗口所使用的资源
  5. public void setDefaultCloseOperation(int operation) 设置点击窗口关闭标识需要对其有什么响应,参数可以设置:
    Do_NOTHING_CLOSE:什么不做
    HIDE_ON_CLOSE:隐藏窗口
    DISPOSE_ON_CLOSE:隐藏当前窗口并释放占有的其他资源
    EXIT_ON_CLOSE:结束窗口所有的应用程序
import javax.swing.*;
import java.awt*;
public static void main(String args[])
{JFrame window1=new JFrame();
 JFrame window2=new JFrame();
 Container con = window1.getContenPane();
 con.setBackground(Color.yellow);//设置背景颜色
 window1.setBounds(60,100,188,108);//设置窗体大小
 window2.setBounds(260,100,188,108);
 wondow1=setVisable(ture);
 window1=setDefalutCloseOperation(JFrame.DISPOSE_ON_CLOSE);
 window2=setVisable(true);
 window2=setDefalutCloseOperation(JFrame.EXIT_ON_CLOSE);
}

菜单条、菜单、菜单项

JComponent 类的子类 JMenubar 负责创建菜单条,其对象项就是一个菜单条:setJMenubar(JMenbar bar),该方法将菜单添加到窗口的顶端需要注意的是,只能向窗口添加一个菜单条

菜单
JComponent类的子类 JMenu 负责创建菜单,即JMenu 的一个实例就是一个菜单

菜单项
JComponent 类的子类 JMenuItem 负责创建菜单项

菜单嵌套
JMenu 是 JMenuItem 的子类,所以菜单本身也是一个菜单项 ,这样就可以嵌套菜单了

菜单上的图标
为了使菜单项有图标,可以调用图标 Icon 声明 一个图标,然后使用其子类 ImageIcon 类创建一个图标,如:
Icon ico=new ImageIcon(“a.gif”); 参数是图片的路径
然后菜单项调用setIcon(Icon icon)方法将图标设置为icon

public class Example{
public static void main(String args[]){
   Window win=new Window("带菜单的窗口",20,30,200,190);
}
}
import javax.swing.*;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import static javax.swing.JFrame.*;
public class Window extend JFrame{
JMenuBar menubar;
JMenu menu,sumMenu;
JMenuItem item1,item2;
public Window(){}
public Window(String s,int x,int y,int w,int h);{
init(s);
setLocation(x,y);
setSize(w,h);
setVisible(ture);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
}
void init(String s)
{setTitle(s);
menubar=new JMenurbar();
menu=new JMenu("菜单");
subMenu=new JMenu("软件项目");//二级菜单
item1=new JMenuItem("java 话题", new ImageIcon("a.gif"));
item2=new JMenuItem("动画 话题", new ImageIcon("b.gif"));
item1.setAccelertor(KeyStroke.getKEyStroke('A'));//设置辅助键
item2.setAccelertor(KeyStroke.getKEyStroke(KeyEvent VK_s,InputEvent,CTRL MASk));
menu.add.item();
menu.addSeparator();
menu.add(item2);
menu.add(subMenu);
subMenu.add(new JMenuItem("汽车销售系统", new ImageIcon("c.gif")));
subMenu.add(new JMenuItem("农场信息系统", new ImageIcon("d.gif")));
menubar.add(menu);
setJMenuBar(menubar);//窗口方法,把菜单条放进窗口
}
}

常见组件与布局

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值