llamar a un temporizador desde un ActionListener en Java

He creado un (segundo) temporizador en Java, pero en lugar de agregar los argumentos (int, action) al crear el temporizador, estoy tratando de inicializar el temporizador dentro de un escucha de acción. La razón es que el int [en el argumento de los temporizadores] se crea dentro del escuchador de acciones.

Sin embargo, cuando hago esto, no se puede encontrar el temporizador.

import java.awt.*;
import java.awt.event.*;
import java.io.IOException;
import java.sql.*;
import java.util.ArrayList;

import javax.swing.*;
import javax.swing.border.Border;

public class mainGui extends JFrame {

    public mainGui()
    {

        final ActionListener timerActionEvent = new ActionListener() {
            public void actionPerformed( ActionEvent evt ) {
                //Start a task here
                Timer myTimer2 = (Timer)evt.getSource();
                //myTimer2.stop();
                BluetoothScan( myTimer2 );
            }
        };
        final ActionListener timerDurationActionEvent = new ActionListener() {
            public void actionPerformed( ActionEvent evt ) {
                //Create a method to stop both timers at the bottom of this class
                Timer myTimer3 = (Timer)evt.getSource();
                StopTimers( myTimer3 );
            }
        };
        final Timer timerDuration;
        final Timer myTimer = new Timer( 5000, timerActionEvent );

        /*
         * Start All ActionListeners // ItemListeners
         */

        ActionListener btnScanAction = new ActionListener() {
            //Action listener for reading data from db
            public void actionPerformed( ActionEvent e ) {
                int roomID = 0;
                int lecturer = 0;
                int unit;
                int roomIDIndex;
                int lectIDIndex;
                int yearIDIndex;
                int unitIDIndex;
                String[] roomArray;
                String[] lecturerArray;
                String[] unitArray = null;
                int durationIndex;
                String DURATION;
                int durationInt;
                //System.out.println(unitArray.length);
                durationIndex = durCB.getSelectedIndex();
                DURATION = itemDuration[durationIndex];
                durationInt = Integer.parseInt( DURATION );
                //User Selected Duration converted to Milliseconds
                int durationMilliSec = (int)(durationInt * 60000);
                ArrayList<String[]> unitYear = null;
                //Store the index ID of the JComboBox Selections
                roomIDIndex = roomCB.getSelectedIndex();
                lectIDIndex = lectCB.getSelectedIndex();
                unitIDIndex = unitCB.getSelectedIndex();
                yearIDIndex = yearCB.getSelectedIndex();
                switch( yearIDIndex )
                {
                    case 1:
                        unitYear = Units1;
                        break;
                    case 2:
                        unitYear = Units2;
                        break;
                    case 3:
                        unitYear = Units3;
                        break;
                    case 4:
                        unitYear = UnitsMasters;
                        break;
                }
                //Get the Array contents at index location
                roomArray = rooms.get( roomIDIndex );
                lecturerArray = Lecturers.get( lectIDIndex );
                unitArray = unitYear.get( unitIDIndex );
                if( unitArray == null ) {
                    System.out.println( "Please select a unit" );
                    System.exit( 0 );
                }
                roomID = Integer.parseInt( roomArray[0] );
                lecturer = Integer.parseInt( lecturerArray[0] );
                unit = Integer.parseInt( unitArray[0] );
                populateComboBoxes pcb = new populateComboBoxes();
                pcb.LabSessionInfo( roomID, lecturer, unit );
                myTimer.start();

                //HERE IS MY PROBLEM

                timerDuration( durationMilliSec, timerDurationActionEvent ).start();
            }
        };

    }
    public void BluetoothScan( Timer myTimer ) {
        BluetoothDeviceDiscovery scan = new BluetoothDeviceDiscovery();
        try {
            myTimer.stop();
            scan.main();
        } catch( IOException e ) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch( InterruptedException e ) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        myTimer.start();
    };
    public void StopTimers( Timer timerDuration ) {
        timerDuration.stop();
        //myTimer.stop();
    }
}

El problema se encuentra en la parte inferior de btnScanAction ActionListener al crear el temporizador Timer timerDuration (DurationMilliSec, timerDurationActionEvent) .start ();

es un problema con no poder ver el temporizador creado desde ActionListener. ¿Alguien sabe de una posible forma de evitar esto, manteniendo el timerDuration (DurationMilliSec, timerDurationActionEvent) .start (); En el ActionListener ??

Muchas gracias chicos

Respuesta 1

Lo que quiero lograr es tener un ListFragment que muestre los datos cargados desde una fuente externa. Quiero usar el SDK de Android 3.0 para este propósito y acercarme a la experiencia del usuario nativo ...

Necesito construir una consulta de hibernación que haga algo como esto: seleccione p de Person p where (p.name, p.surname) en (('Peter', 'Black'), ('Thomas', 'Peterson') , ('Julia', 'Cook')) El ...

¿Alguien puede dar un ejemplo del uso de REF CURSOR de Oracle usando myBatis?

Mi nombre es Rahul. Soy nuevo en flex. Estoy tratando de integrar flex con blazeds usando java. He escrito un código según mi conocimiento. Pero no se conecta a la base de datos. Estoy pegando mi código aquí ...