NetBeans中TaskMonitor的使用

使用NetBeans 新建一个Swing Application Program,会自动生成如下的代码:

TaskMonitor:

TaskMonitor taskMonitor = new TaskMonitor ( getApplication ().getContext () );
        taskMonitor.addPropertyChangeListener ( new java.beans.PropertyChangeListener ()
        {

            public void propertyChange ( java.beans.PropertyChangeEvent evt )
            {
                String propertyName = evt.getPropertyName ();
                if ( "started".equals ( propertyName ) )
                {
                    if ( !busyIconTimer.isRunning () )
                    {
                        statusAnimationLabel.setIcon ( busyIcons[0] );
                        busyIconIndex = 0;
                        busyIconTimer.start ();
                    }
                    progressBar.setVisible ( true );
                    progressBar.setIndeterminate ( true );
                }
                else if ( "done".equals ( propertyName ) )
                {
                    busyIconTimer.stop ();
                    statusAnimationLabel.setIcon ( idleIcon );
                    progressBar.setVisible ( false );
                    progressBar.setValue ( 0 );
                }
                else if ( "message".equals ( propertyName ) )
                {
                    String text = ( String ) ( evt.getNewValue () );
                    statusMessageLabel.setText ( ( text == null ) ? "" : text );
                    messageTimer.restart ();
                }
                else if ( "progress".equals ( propertyName ) )
                {
                    int value = ( Integer ) ( evt.getNewValue () );
                    progressBar.setVisible ( true );
                    progressBar.setIndeterminate ( false );
                    progressBar.setValue ( value );
                }
            }
        } );

 新建自定义Task,用于和TaskMonitor关联使用,实例代码:

@Action
    public Task doCount ()
    {
        DoCountTask task = new DoCountTask ( getApplication () );
//        ApplicationContext C = getApplication().getContext();     
//        TaskMonitor M = C.getTaskMonitor();     
//        TaskService S = C.getTaskService();       
//        M.setForegroundTask(task); 
        return task;
    }

    private class DoCountTask extends org.jdesktop.application.Task<Object, Void>
    {

        DoCountTask ( org.jdesktop.application.Application app )
        {
            // Runs on the EDT.  Copy GUI state that
            // doInBackground() depends on from parameters
            // to DoCountTask fields, here.
            super ( app );
        }

        @Override
        protected Object doInBackground ()
        {
            // Your Task's code here.  This method runs
            // on a background thread, so don't reference
            // the Swing GUI from here.
            countMenuItem.setEnabled ( false );
            statusMessageLabel.setText ( "Counting ..." );
            for ( int i = 0; i <= 100; i++ )
            {
                countLabel.setText ( "... " + i + " ..." );
                try
                {
                    Thread.sleep ( 50 );
                }
                catch ( InterruptedException e )
                {
                    countLabel.setText ( e.toString () );
                    break;
                }
            }
            statusMessageLabel.setText ( "OK!" );
            countMenuItem.setEnabled ( true );
            return null;  // return your result
        }

        @Override
        protected void succeeded ( Object result )
        {
            // Runs on the EDT.  Update the GUI based on
            // the result computed by doInBackground().
        }
    }

 将上述的@Action注解的方法,绑定到某个控件即可触发事件,并实现DoCountTask和TaskMonitor关联并起作用。

 

 

转载于:https://www.cnblogs.com/masb/archive/2011/12/20/2295219.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值