Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1446665
  • 博文数量: 254
  • 博客积分: 8696
  • 博客等级: 中将
  • 技术积分: 2961
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-03 16:46
文章分类

全部博文(254)

文章存档

2015年(4)

2014年(18)

2013年(16)

2012年(8)

2011年(25)

2010年(2)

2009年(74)

2008年(107)

分类: Java

2009-06-13 19:55:45

如果运行SingleFrameExample2,那么其效果如下:

SingleFrameExample2 (Hello World) 屏幕截图

 

SingleFrameApplication.show方法使用ResourceMap的injectComponents方法初始化从应用程序的ResourceBundle载入的每个有名组件的特性。

退出应用程序

通过调用Applcaiton.exit方法,应用程序应当能顺利退出。当关闭主JFrame时,SingleFrameApplication的职责所在。在实际的应用程序里,确保用户在关闭是真的希望退出经常是重要的。例如,可能希望询问未保存的文档或者未完成的事务处理。在exit()真的终止应用程序之前,通过调用canExit方法轮询所有的exitListener。如果任何一个canExit方法返回false,退出过程将终止。否则,调用exitListener的willExit方法,并最终调用Appliciton 的shutdown方法。这些方法正是打理任何清扫工作的地方。

本例在下面正是用一个对话来询问用户确认退出的。

 

public class SingleFrameExample3 extends SingleFrameApplication {
    
public void startup(String[] args) {
        ExitListener maybeExit 
= new ExitListener() {
            
public boolean canExit(EventObject e) {
                
int option = JOptionPane.showConfirmDialog(null"Really Exit?");
                
return option == JOptionPane.YES_OPTION;
            }
            
public void willExit(EventObject e) }
        };
        addExitListener(maybeExit);
        JButton button 
= new JButton();
        button.setName(
"button");
        button.setAction(
new ActionAdapter() {
                
public void actionPerformed(ActionEvent e) {
                    exit(e);
                }
            });
        show(button);
    }
    
public static void main(String[] args) {
        launch(SingleFrameExample3.
classargs);
    }
}

本例的ResourceBundle和前面相似,既然这样还是配置了这个JButton。也增加了一个定义主JFrame的标题的资源。SingleFrameApplication命名它建立的JFrame为"mainFrame"。

mainFrame.title = ExitListener Demo
button.background = 255, 255, 255
button.foreground = 0, 0, 0
button.text = Click to Exit
button.font = Lucida-PLAIN-48
button.icon = exit.png

如果运行SingleFrameExample3,单击窗口的关闭按钮或者按下巨大的“Click to Exit”按钮尝试退出,将提示操作者确认:

SingleFrameExample3 屏幕截图

在本例里,使用建立一个实现了javax.swing.Action的匿名类的实例的常规方法来设置按钮的动作特性。动作对象的actionPerformed方法只是调用exit。应用程序框架则通过使用新的@Action标注从而建立动作对象的建立。

阅读(1476) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~