Hola a todos, tengo un problemilla a la hora de crear dinámicamente botones con Java: tengo que crear una aplicación de interfaz gráfica que contenga un botón (Jbutton normal y corriente) de manera que, cuando el usuario pulse en ese botón, se añadirá un nuevo botón a la ventana. Este nuevo botón contendrá tendrá un icono y su nombre será el color del icono que contiene. Los colores los decide la aplicación de manera aleatoria, es decir que si pulsamos 7 veces tendremos algo parecido a: 
 
[crea un botón][amarillo][verde][naranja][azul][verde][verde]
 
Cualquiera de los botones generados debe ser capaz a su vez de generar un nuevo botón, con su mismo color.
 
 
Es algo bastante sencillo pero es que al compilar me sale un error que no entiendo y soy incapaz de solucionar por muchas vueltas que le dé. Os voy a dejar el fragmento de código para ver si alguno podeis ayudarme.
 
 
//método del botón inicial, creado en el initComponents()
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
        javax.swing.JButton jButtonAux;
        numero_aleatorio = Math.random();
        if (numero_aleatorio < 0.25){
            jButtonAux = new javax.swing.JButton("amarillo",amarillo);
        }
        else if(numero_aleatorio < 0.5){
            jButtonAux = new javax.swing.JButton("verde",verde);
        }
        else if(numero_aleatorio < 0.75){
            jButtonAux = new javax.swing.JButton("naranja",naranja);
        }
        else{
            jButtonAux = new javax.swing.JButton("azul",azul);
        }
 
        jButtonAux.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonAuxActionPerformed(evt, numero_aleatorio);
            }
        });
 
        getContentPane().add(jButtonAux);
        pack();
}
 
//ESTE ES EL MÉTODO QUE ME FALLA
private void jButtonAuxActionPerformed(java.awt.event.ActionEve  nt evt, double numero_aleatorio_otro) {        
        javax.swing.JButton jButtonOtro = new javax.swing.JButton();
        if (numero_aleatorio_otro < 0.25){
            jButtonOtro = new javax.swing.JButton("amarillo",amarillo);
        }
        else if(numero_aleatorio_otro < 0.5){
            jButtonOtro = new javax.swing.JButton("verde",verde);
        }
        else if(numero_aleatorio_otro < 0.75){
            jButtonOtro = new javax.swing.JButton("naranja",naranja);
        }
        else{
            jButtonOtro = new javax.swing.JButton("azul",azul);
        }
 
        jButtonOtro.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
 JButtonAuxActionPerformed(evt, numero_aleatorio_otro)
                //AQUÍ ES DONDE ME FALLA, EXACTAMENTE ME DICE:
                //local variable numero_aleatorio_otro is accessed from within inner class; needs to be declared final
 
            }
        });
 
 
        getContentPane().add(jButtonOtro);
        pack();
 
 
}
 
Disculpad las molestias y muchas gracias por vuestra atención. 
   
 

