Foros del Web » Programación para mayores de 30 ;) » Java »

Crear controles en tiempo real (escritorio)

Estas en el tema de Crear controles en tiempo real (escritorio) en el foro de Java en Foros del Web. hola que tal, tengo una duda si se puede crear JButton en tiempo real es decir tengo mi JFrame con un boarderLayout el cual le ...
  #1 (permalink)  
Antiguo 17/05/2009, 19:32
Avatar de Drknow  
Fecha de Ingreso: febrero-2008
Mensajes: 121
Antigüedad: 16 años, 2 meses
Puntos: 1
Pregunta Crear controles en tiempo real (escritorio)

hola que tal, tengo una duda si se puede crear JButton en tiempo real es decir tengo mi JFrame con un boarderLayout el cual le agrege dos paneles un JButton en norte el cual en su metodo action crea un JButton y lo agrega al panel del centro, he repintado y nada alguien me da un empujon ?
  #2 (permalink)  
Antiguo 17/05/2009, 23:56
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: Crear controles en tiempo real (escritorio)

Poderse se puede, así que hay algo que no debes estar haciendo bien. No hay información suficiente en tu mensaje como para poder adivinar cual es exactamente el problema.

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #3 (permalink)  
Antiguo 19/05/2009, 07:52
Avatar de Drknow  
Fecha de Ingreso: febrero-2008
Mensajes: 121
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: Crear controles en tiempo real (escritorio)

por ejemplo yo tengo mi JFrame con un JComboBox el cual en el evento itemStateChanged creo una matrix de botones el cual lo tomo del getSelectedIndex() del combo lo creo asi cada ves que se produce el evento

JButton[] btn = new[combo.getselectedIndex()];

mi JFrame tiene un borderLayout en el norte esta el combo y en el sur esta un panel
en el evento del combo agrego la matriz de botones al panel del sur pero no me aparece nada obvio lo agrego con un for en la matriz para recorrerlo
de todas maneras me puedes dar un ejemplo bien basico si se utiliza clases graficas ?
  #4 (permalink)  
Antiguo 19/05/2009, 08:15
Avatar de goncafa  
Fecha de Ingreso: julio-2002
Ubicación: Santiago
Mensajes: 1.211
Antigüedad: 21 años, 10 meses
Puntos: 10
Respuesta: Crear controles en tiempo real (escritorio)

Creo que mas bien nos servivira aqui el codigo de de tu for o bien tu codigo completo.

Ponlo usando la etiqueta PHP para que no se desarme la indentacion y sea mas facil leerlo.

Saludos
__________________
se despide hasta la proxima
Gonzalo Castillo
  #5 (permalink)  
Antiguo 19/05/2009, 08:36
Avatar de Drknow  
Fecha de Ingreso: febrero-2008
Mensajes: 121
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: Crear controles en tiempo real (escritorio)

Código PHP:
public class frm extends JFrame implements ActionLIstener,ItemListener{

public 
frm(){
JPanel panNorte = new JPanel();
JPanel panSur = new JPanel()

Object[] obj = {"op1","op2","op3","op4","op5"};
JComboBox cmb = new JComboBox(obj);

panNorte.add(cmb);
this.setLayout(new BorderLayout());
this.add(panNorte,BorderLayout.NORTH):
this.add(panSur,BorderLayout.SOUTH):

cmb.addItemListener(this);


}

public 
itemStateChanged(ItemEvent evt){
int cant cmb.getSelectedIndex();
JButton[] btn = new JButton[cant];
for(
int i 0canti++){
panSur.add(btn[i]);
btn[i].addActionListener(this);
}
}

public 
actionPerformed(ActionEvent evt){}



bueno es algo asi un empujon px = D
  #6 (permalink)  
Antiguo 19/05/2009, 08:44
Avatar de goncafa  
Fecha de Ingreso: julio-2002
Ubicación: Santiago
Mensajes: 1.211
Antigüedad: 21 años, 10 meses
Puntos: 10
Respuesta: Crear controles en tiempo real (escritorio)

A simple vista veo algunos errores?

No te da NullPointerException al ejecutarlo?

Esto debido a que inicializas el arreglo de botones en una cantidad... Pero no inicializas ninguno de sus objetos.

Ese codigo deberia ser algo asi.
Código PHP:
public itemStateChanged(ItemEvent evt){
    
int cant cmb.getSelectedIndex();
    
JButton[] btn = new JButton[cant];
    for(
int i 0canti++){
        
btn[i] = new JButon("Mi Boton");
        
panSur.add(btn[i]);
        
btn[i].addActionListener(this);
    }

Por otra aprte, el arreglo lo inicilizas con el getSelectedIndex, que en caso de seleccionar la primera opcion podria ser 0, osea el arreglo no tiene elementos. Luego no entra en el for.

Saludos
__________________
se despide hasta la proxima
Gonzalo Castillo
  #7 (permalink)  
Antiguo 19/05/2009, 08:45
Avatar de goncafa  
Fecha de Ingreso: julio-2002
Ubicación: Santiago
Mensajes: 1.211
Antigüedad: 21 años, 10 meses
Puntos: 10
Respuesta: Crear controles en tiempo real (escritorio)

A simple vista veo algunos errores?

No te da NullPointerException al ejecutarlo?

Esto debido a que inicializas el arreglo de botones en una cantidad... Pero no inicializas ninguno de sus objetos.

Ese codigo deberia ser algo asi.
Código PHP:
public itemStateChanged(ItemEvent evt){
    
int cant cmb.getSelectedIndex();
    
JButton[] btn = new JButton[cant];
    for(
int i 0canti++){
        
btn[i] = new JButon("Mi Boton");
        
panSur.add(btn[i]);
        
btn[i].addActionListener(this);
    }

Por otra aprte, el arreglo lo inicilizas con el getSelectedIndex, que en caso de seleccionar la primera opcion podria ser 0, osea el arreglo no tiene elementos. Luego no entra en el for.

Saludos
__________________
se despide hasta la proxima
Gonzalo Castillo
  #8 (permalink)  
Antiguo 19/05/2009, 08:50
Avatar de Drknow  
Fecha de Ingreso: febrero-2008
Mensajes: 121
Antigüedad: 16 años, 2 meses
Puntos: 1
Pregunta Respuesta: Crear controles en tiempo real (escritorio)

supongo que se me paso =) no tengo ahora ningun compilador no estoy en mi casa...
entonces no puedo probarlo, no se si la distribucion del layout esta bien...

Código PHP:
public class frm extends JFrame implements ActionLIstener,ItemListener{

public 
frm(){
JPanel panNorte = new JPanel();
JPanel panSur = new JPanel()

Object[] obj = {"op1","op2","op3","op4","op5"};
JComboBox cmb = new JComboBox(obj);

panNorte.add(cmb);
this.setLayout(new BorderLayout());
this.add(panNorte,BorderLayout.NORTH):
this.add(panSur,BorderLayout.SOUTH):

cmb.addItemListener(this);


}

public 
void itemStateChanged(ItemEvent evt){
int cant cmb.getSelectedIndex() + 1;
JButton[] btn = new JButton[cant];
for(
int i 0canti++){
btn[i] = new JButon(""i); 
panSur.add(btn[i]);
btn[i].addActionListener(this);
}
}

public 
void actionPerformed(ActionEvent evt){}


  #9 (permalink)  
Antiguo 19/05/2009, 11:35
Avatar de Drknow  
Fecha de Ingreso: febrero-2008
Mensajes: 121
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: Crear controles en tiempo real (escritorio)

panSur.updateUI(); actualiza el componente
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:34.