javaswing菜单栏工具栏,swing右键菜单

  javaswing菜单栏工具栏,swing右键菜单

  6.2 使用弹出菜单:弹出窗口类

  并不是我们希望弹出的所有内容都需要是一个菜单。通过弹出与人口工厂类,我们可以在其他的组件上弹出任何组件。这与工具提示不同,工具提示是只读的不可选择的标签。我们可以弹出可选择的按钮,树或是表。

  6.2.1 创建弹出组件

  弹出是一个具有两个方法隐藏()与显示()的简单类,同时具有两个受保护的构造函数。我们并不能直接创建弹出对象,而是需要由人口工厂类获取。

  弹出工厂工厂=弹出工厂。getsharedinstance();

  popup popup=工厂。get popup(所有者,内容,x,y);

  由人口工厂所创建的带有内容组件的弹出则会位于物主组件内的其他组件之上。

  6.2.2 一个完整的弹出窗口/弹出工厂使用示例

  列表6-7演示了在另一个命令按钮之上显示了一个命令按钮的弹出与人口工厂的使用示例。选择初始的命令按钮会使得在第一个命令按钮之上,在随机位置创建第二个。当第二个按钮可见时,每一个都是可选择的。多次选择初始的可见按钮会出现多个弹出按钮,如图6-9所示。每一个弹出菜单将会在三秒后消失。在这个例子中,选择弹出菜单只会在控制台显示一条消息。

  包网。爱丽儿。ch06

  导入Java。awt。组件;

  导入Java。awt。事件队列;

  导入Java。awt。事件。动作事件;

  导入Java。awt。事件。动作监听器;

  导入Java。util。随机;

  导入javax。挥棒。jbutton

  导入javax。挥棒。jframe

  导入javax。挥棒。弹出窗口;

  导入javax。挥棒。弹出工厂;

  导入javax。挥棒。计时器;

  公共类按钮人口样本{

  静态最终随机Random=new Random();

  //定义动作监听器

  静态类按钮操作监听器实现ActionListener {

  已执行公共无效操作(操作事件事件){

  系统。出去。println( Selected:事件。getactioncommand());

  //定义显示弹出动作监听器

  静态类ShowPopupActionListener实现ActionListener {

  私有组件组件;

  ShowPopupActionListener(组件组件){

  这个组件=组件;

  已执行公共同步作废操作(操作事件事件){

  JButton button=new JButton( Hello,world );

  action listener listener=new ButtonActionListener();

  button.addActionListener(监听器);

  弹出工厂工厂=弹出工厂。getsharedinstance();

  int x=random。nextint(200);

  int y=random。nextint(200);

  最终弹出弹出=工厂。get Popup(组件,按钮,x,y);

  弹出菜单。show();

  操作监听器hider=新操作监听器(){

  已执行公共无效操作(操作事件事件){

  弹出菜单。hide();

  //3秒后隐藏弹出窗口

  Timer timer=new Timer(3000,hider);

  计时器。start();

  * @param args

  公共静态void main(String[] args) {

  //TODO自动生成的方法存根

  Runnable runner=new Runnable() {

  公共无效运行(){

  //创建框架

  JFrame frame=新JFrame(按钮弹出示例);

  框架。setdefaultcloseoperation(JFrame .EXIT _ ON _ CLOSE);

  action listener action listener=new ShowPopupActionListener(frame);

  JButton start=new JButton( Pick Me for Popup );

  开始吧。addactionlistener(动作监听器);

  frame.add(开始);

  frame.setSize(350,250);

  框架。设置可见(真);

  事件队列。稍后调用(runner);

  }

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: