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

jRadioButton!!

Estas en el tema de jRadioButton!! en el foro de Java en Foros del Web. Hola, estoy liada con un applet...esta dividido en varios archivos, en uno tengo un panel en el que añado dos jRadioButtons, lo que quiero conseguir ...
  #1 (permalink)  
Antiguo 16/04/2008, 05:40
 
Fecha de Ingreso: abril-2008
Mensajes: 4
Antigüedad: 16 años
Puntos: 0
jRadioButton!!

Hola, estoy liada con un applet...esta dividido en varios archivos, en uno tengo un panel en el que añado dos jRadioButtons, lo que quiero conseguir es que segun pulse uno de estos dos jRadioButtons en un area de texto que tengo (en el archivo principal) aparezca una cabecera u otra...no se como hacerlo, he probado de mil formas

Gracias por adelantado
  #2 (permalink)  
Antiguo 16/04/2008, 06:29
 
Fecha de Ingreso: enero-2008
Mensajes: 162
Antigüedad: 16 años, 3 meses
Puntos: 2
Re: jRadioButton!!

Lo más "profesional" sería utilizar un patrón de diseño tipo Observer. Lo que más a mano queda es crearte un método en la clase que contiene el texto que reciba un parámetro (como un entero o una cadena), e invocarlo desde la clase que contiene los jRadioButton cada vez que se produce un evento de acción sobre los mismos.
  #3 (permalink)  
Antiguo 17/04/2008, 05:36
 
Fecha de Ingreso: abril-2008
Mensajes: 4
Antigüedad: 16 años
Puntos: 0
Re: jRadioButton!!

Cita:
Iniciado por AlitoXxX Ver Mensaje
Lo más "profesional" sería utilizar un patrón de diseño tipo Observer. Lo que más a mano queda es crearte un método en la clase que contiene el texto que reciba un parámetro (como un entero o una cadena), e invocarlo desde la clase que contiene los jRadioButton cada vez que se produce un evento de acción sobre los mismos.

creo que he hecho lo que mehas dicho pero me sigue sin funcionar...

el codigo del programa principal donde esta la cabecera del JTextField que quiero modificar es este:

//Metodo que recibe el parametro
public void setText (String elTexto)
{
jtxtInformacion.setText(elTexto);
}

//Cabecera que quiero modificar
public void headInformacion()
{
Font f = new Font("Courier",Font.BOLD,12);
//Añadimos el tipo de letra para mostrar los datos
jtxtInformacion.setFont(f);
jtxtInformacion.setText(" Media Muestral \tVarianza Muestral \tEstadístico \tplimite");
jtxtInformacion.append("\n----------------\t-----------------\t-------------\t-------\n");
jtxtSolucion.setFont(f);
//Introducimos la información de cada columna
jtxtSolucion.setText(" Resultados ");
jtxtSolucion.append( "\n ----------------------------------------------------------- \n ");


El codigo donde se encuentra los JRadioButtons es este:

public class PanelVarianza extends JPanel implements ItemListener{

ContrasteDeHipotesisApplet ContrasteApplet;

/**
* Paneles para estructurar los diferentes elementos
*/
JPanel jpnVarianza, jpnRadioButtonVarianza, jpnVarianzaConocida;

/**
* Caja de texto para la varianza conocida
*/
JTextField txtVarianza;

/**
* Etiqueta para la varianza conocida
*/
JLabel lblVarianza;

/**
* Radio botones de la aplicación
*/
JRadioButton jrbtnVarianzaDesconocida, jrbtnVarianzaConocida;

/**
* Botón de grupo para agregar todos los radio botones
*/
ButtonGroup btnGrupo;

/**
* Alinea los componentes vertical y horizontalmente en un área con celdas que se redimensionan dinámicamente
*/
GridBagLayout gblVarianza;

/**
* Indica el lugar de las celdas del BagLayout donde van situados los componentes que
* se van a dibujar y su disposición en tamaño y área a ocupar por las celdas
*/
GridBagConstraints gbcVarianza;

/**
* Variable necesaria para recoger los radio botones activados
*/
StringBuffer choices = new StringBuffer( "00" );

public PanelVarianza()
{

// Generamos las capas para organizarnos dentro del panel jpnVarianza
// así tenemos dividido el panel en celdas
gblVarianza = new GridBagLayout();
gbcVarianza = new GridBagConstraints();

// Creamos el panel jpnVarianza, que se incluirá dentro del panel jpnPrincipal
jpnVarianza = new JPanel( gblVarianza );

// Creamos un botón de grupo, donde incluiremos todos los radio botones. De este modo, cuando se
// selecciona uno, se desactiva el que estaba activado, con el único objetivo de que
// solo haya uno activo a la vez
btnGrupo = new ButtonGroup();

RadioListener MyListener = new RadioListener();

// Creamos el panel jpnRadioButtonVarianza que contendrá todos los radio botones necesarios,
// este panel se incluirá dentro del panel jpnBotonesVarianza
jpnRadioButtonVarianza = new JPanel();

// <<<<<<<<<<< RADIO BOTÓN VARIANZA DESCONOCIDA >>>>>>>>>>>>
jrbtnVarianzaDesconocida = new JRadioButton( "Varianza desconocida" );
jrbtnVarianzaDesconocida.addActionListener( MyListener );
jrbtnVarianzaDesconocida.setToolTipText( "La varianza no es conocida y se obtendrá mediante una serie de cálculos" );
jpnRadioButtonVarianza.add( jrbtnVarianzaDesconocida );
// Lo añadimos al grupo
btnGrupo.add( jrbtnVarianzaDesconocida );
gbcVarianza.gridx=0;
gbcVarianza.gridy=0;
gbcVarianza.fill=GridBagConstraints.EAST;
jpnVarianza.add( jrbtnVarianzaDesconocida, gbcVarianza );

// Añadimos el panel jpnRadioButtonIntervalos en la celda (0,0)
// del panel jpnVarianza
/*gbcVarianza.gridx = 0;
gbcVarianza.gridy = 0;

jpnVarianza.add( jpnRadioButtonVarianza, gbcVarianza );*/




// <<<<<<<<<<< RADIO BOTÓN VARIANZA CONOCIDA >>>>>>>>>>>>
jrbtnVarianzaConocida = new JRadioButton( "Varianza conocida " );
jrbtnVarianzaConocida.addActionListener( MyListener );
jrbtnVarianzaConocida.setToolTipText( "Varianza conocida" );
jpnRadioButtonVarianza.add( jrbtnVarianzaConocida );
// Lo añadimos al grupo
btnGrupo.add( jrbtnVarianzaConocida );
gbcVarianza.gridx=0;
gbcVarianza.gridy=1;
gbcVarianza.fill=GridBagConstraints.EAST;
jpnVarianza.add( jrbtnVarianzaConocida, gbcVarianza );



// Creamos el panel jpnVarianzaConocida que contendrá todos los elementos necesarios
// para introducir lo intervalos manualmente, este panel se incluirá dentro del panel
// jpnVarianza
jpnVarianzaConocida = new JPanel();

// Creamos la etiqueta lblVarianza para ponerle una etiqueta al JTextField
lblVarianza = new JLabel( "" );
lblVarianza.setToolTipText( "" );
jpnVarianzaConocida.add( lblVarianza );

// Creamos un campo de texto txtVarianza para recoger el valor de la varianza
txtVarianza = new JTextField( "", 4 );
txtVarianza.setToolTipText( "Introduzca aquí el valor de la varianza conocida" );
jpnVarianzaConocida.add( txtVarianza );
gbcVarianza.gridx=1;
gbcVarianza.gridy=1;
gbcVarianza.fill=GridBagConstraints.EAST;
jpnVarianza.add( txtVarianza, gbcVarianza );

// Inicialmente desactivamos el panel jpnVarianzaConocida para introducir intervalos manualmente,
// se activara cuando se pulse el botón jbtnIntroducirIntervalos
desactivarVarianzaConocida();

// Añadimos el panel jpnVarianzaConocida en la celda (0,2)
// del panel jpnVarianza
gbcVarianza.gridx = 0;
gbcVarianza.gridy = 2;
jpnVarianza.add( jpnVarianzaConocida, gbcVarianza );

// Añadimos el panel jpnVarianza
add( jpnVarianza );

}



public void itemStateChanged( ItemEvent e )
{
int index = 0;
char c = '0';
Object source = e.getItemSelectable();

if ( source == jrbtnVarianzaDesconocida )
desactivarVarianzaConocida();

else if ( source == jrbtnVarianzaConocida )
{
index = 0;
c = '1';
activarVarianzaConocida();
}

if ( e.getStateChange() == ItemEvent.DESELECTED )
c = '0';

choices.setCharAt( index, c );

}

Se supone que con este codigo deberia de cambiar la cabecera...pero no!!
class RadioListener implements ActionListener{

public void actionPerformed(ActionEvent e) {
String evento = e.getActionCommand();
if(evento.equals("Varianza conocida "))
{
ContrasteApplet.setText(" Media Muestral \tVarianza Muestral \tEstadístico(Z) \tplimite");
}
else if(evento.equals("Varianza desconocida "))
{
ContrasteApplet.setText(" Media Muestral \tVarianza Muestral \tEstadístico(t) \tplimite");
}

}
}
  #4 (permalink)  
Antiguo 17/04/2008, 06:38
 
Fecha de Ingreso: enero-2008
Mensajes: 162
Antigüedad: 16 años, 3 meses
Puntos: 2
Re: jRadioButton!!

¿Qué IDE estás usando? Lo que tienes que hacer es añadir un evento de acción a los radioButton, y dentro del evento, invocar la función dentro de la clase que contiene el texto a cambiar.
Por ejemplo, si seleccionás el JRadioButton1, invocás la función de la clase del texto pasándole como parámetro un entero (1). En la clase que contiene el método preguntás por el parámetro o hacés un switch, cambiando la cabecera del texto a tu gusto.
Yo siempre hago las cosas así y me funcionan...
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 16:59.