style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

¿ saben como hacer un arraylist de botones en tiempo de ejecucion?

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de Payan

Lo que quiero hacer es

Lo que quiero hacer es agregar botones atraves de un for a un arraylist de botones en tiempo de ejecucion...

Imagen de Jose Manuel

Mas o menos así?

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.swing.*;

/**
 *
 * @author kalt
 */

public class Prueba implements ActionListener {
    private List<JButton> listaBotones = new ArrayList<>();
    private JTextField tf;
    JFrame frame;
    private JPanel panelContenedor, panelAux;
    private JButton boton;
   
    public Prueba() {
        frame = new JFrame("Botones en tiempo de ejecucion!");
        frame.getContentPane().setLayout(new BorderLayout());
       
        boton = new JButton("Dame clic");
        boton.addActionListener(this);
       
        tf = new JTextField(10);
       
        panelContenedor = new JPanel();
        panelContenedor.setLayout(new GridLayout(5,5));
       
        panelAux = new JPanel();
        panelAux.setLayout(new FlowLayout());
        panelAux.add(tf);
        panelAux.add(boton);
       
        frame.add(panelAux, BorderLayout.NORTH);
        frame.add(panelContenedor, BorderLayout.CENTER);
       
        frame.setSize(600,400);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        int numero = Integer.parseInt(tf.getText());
        //Primero llenamos con el numero de elementos requeridos
        for(int i = 0; i < numero; i++) {
           listaBotones.add(new JButton("Boton "+i));
        }
        //Despues lo agregamos al panel
        Iterator<JButton> itera = listaBotones.listIterator();
        while(itera.hasNext()) {
            panelContenedor.add(itera.next());
        }
        frame.validate();
               
    }
    public static void main(String args[]) {
      new Prueba();
    }
}

Tengo la sensación de que ya habían preguntado algo parecido... Este solo es un ejemplo, aun tienes que cambiarlo a tus necesidades y asegurarte de eliminar los componentes cuando ya no los ocupes.
Saludos.

Imagen de Payan

eyyy!! Eureka jjejeje muchas

eyyy!! Eureka jjejeje muchas gracias fenomeno!!! xD

y como puedo darle un evento distinto a cada boton..?

Saludos!!xD

Imagen de Jose Manuel

Para eso habría que hacer

Para eso habría que hacer unos cambios al programa.
Ahora el botón "Dame clic" tendrá su evento dentro de una clase interna anónima y desde allí puedes construir el resto de botones. El actionPerformed que es sobre escrito sera el método llamado cada que presiones un botón. Te dejo el ejemplo, pero de nuevo, cambialo a tus necesidades, tu también muevele o no lo terminaras de entender. No se enseñar como otros de la comunidad. Por ahora, solo me puedo expresar con ejemplos XD

Te dejo el programa con el cambio:

...
boton = new JButton("Dame clic"); //Despues de crear el botón le agregamos un listener en una clase interna anónima
        boton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                evento(e);
            }
        });
...
public void actionPerformed(ActionEvent e) { //Este es el action sobre escrito de la clase, lo que llaman los botones creados
        JButton bAux = (JButton) e.getSource();
        System.out.println("Clic en el "+ bAux.getText());                
    }
    public void evento(ActionEvent e) { //Metodo que se llama desde la clase interna anónima. Construye los otros botones.
        int numero = Integer.parseInt(tf.getText());
        //Primero llenamos con el numero de elementos requeridos
        for(int i = 0; i < numero; i++) {
            JButton jb = new JButton("Boton "+ i); //Ahora creamos el boton en lugar de solo un objeto anonimo
            jb.addActionListener(this); //esto se hace para poder agregarle el listener.
            listaBotones.add(jb);//Despues, simplemente se agrega a la lista.
        }
        //Despues lo agregamos al panel
        Iterator<JButton> itera = listaBotones.listIterator();
        while(itera.hasNext()) {
            panelContenedor.add(itera.next());
        }
        frame.validate();
    }

Eso es todo, espero que te sirva, de nuevo, modificalo. Para cuando no sepas como puede hacerse algo, en lo personal, me sirve utilizar la imaginación. Aunque esta forma creo haberla visto hace tiempo, no recuerdo bien. Aquí lo mero chido esta al hacer el cast de el evento que se genera y se convierte a un botón. Allí esta el truco.
Saludos!

Imagen de Payan

Muchas gracias!! me va

Muchas gracias!! me va perfecto amigo ! eres un fenomeno!xD
saludos!!!

Imagen de Jose Manuel

Espero que lo de fenómeno sea

Espero que lo de fenómeno sea algo bueno O.o jajaja. De nada.

Imagen de Payan

claro que si ,es que

claro que si ,es que contestas mu rapido y se nota que sabes de esto!
Un saludo! xD

Imagen de Payan

como puedo hacer que se

como puedo hacer que se generen los botones nada mas empezar la aplicacion sin pulsar ningun boton? lo he intentado pero me da error..

Imagen de Jose Manuel

Pues debes de tener ya un

Pues debes de tener ya un numero especifico de botones. Si es así. Ya no deberías usar este programa, usa otro. Creas tu lista de botones y los agregas a un panel y después puedes agregarle los listener. Muchísimo mas simple que el actual.

botones en tiempo de ejecucion

Como puedo crear los controles pero desde mi mismo formulario ya mi boton creado y mi caja de texto
como puedo amarrar ese evento de cada boton pero desde mi boton ya diseñado pucha nu me sale ayudita plzz tome el ejemplo de arriba

AGUIEN ME PODRIA AYUDAR CON UN PROGRAMA QUE CONTENGA ARRAYLIST::

//.BUENO MI DUDA ES QUE NO SE COMO METER UN ARRAY LIST EN ESTE PROGRAMA... MI PROGRAMA CONSTA QUE EN PANTALLA DE COMO RESULTADO CUANTOS IP ESTAN EN LINEA, OSEA QUE ESTEN CONECTADOS Y NO CONECTADOS ATRAVES DE UNAS DIRECCIONES IP LA CUAL YA LAS TENGO UN EJEMPLO SERIA COMO ESTE ..
//.ESTE PROGRAMA PINGUEA LA PC QUE OCUPAS PARA VER SI ESTAS CONECTADO O NO : ES COMO SI LO TECLEARAN EN CMD!
Y LAS IP QUE YO KIERO METER POR EJEMPLO SON:
192.168.1.147
192.168.1.152
192.168.1.156
192.168.1.154
192.168.1.184
//. Y EL RESULTADO KIERO KE MEDE UN EJEMPLO 192.168.1.184-CONECTADA
192.168.1.154-NO CONECTADA
192.168.1.152-CONECTADA

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class ComandoPing{

private static final String COMANDO = "ping";
private static final String ESPACIO = " ";
private static final String IP_HOST = "192.168.1.147";

public static void main( String[] argumentos ){

ComandoPing javaPing = new ComandoPing();

String IP = null;
String otroIP = IP_HOST;

if( argumentos.length > 0 ){
IP = argumentos[ 0 ];
}
else{
if( (otroIP.equalsIgnoreCase( "" )) ){
IP = "localhost";
}
else{
IP = otroIP;
}
}

javaPing.validarPingIP( IP );
}

public void validarPingIP( String IP ){

String mensaje = null;
String pingCMD = COMANDO + ESPACIO + IP;

try{
Runtime ejecuta = Runtime.getRuntime();
Process proceso = ejecuta.exec( pingCMD );

InputStreamReader entrada = new InputStreamReader( proceso.getInputStream() );
BufferedReader buffer = new BufferedReader( entrada );

String linea = "";

for( ;(linea = buffer.readLine() ) != null; ){
System.out.println( linea );
mensaje += linea;
}

buffer.close();
}
catch( IOException e ){
System.out.println( e );
}
catch( Exception e ){
System.out.println( e );
}
}
}

problema con un JDialog

Hola hermano disculpe Dios lo Bendiga tengo un problemita quiero hacer que un Boton desde un JDialog modal me permita agregar el boton en un jpanel en el frame padre pero no se como add el boton segui el codigo que esta en este post me sirve pero cuando intente hacer esto no logro hacer que el boton se ponga en el jframe padre

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">