Foro sobre Java SE > Codigo no permitido o permitido entre objetos
Buenas,
Sin ningun lugar a dudas eso que pretendes hacer es fruto de un mal diseno de tu codigo.
De cualquier forma, supongo que puedes hacer referencia dicha variable por reflexion. Te lo pongo de memoria:
if(((JRadioButton)this.getClass().getDeclaredField(paso).get(new JRadioButton())).isSelect()) {
Ah, si la variable es local a un metodo y no de instancia seria con getField y no con getDeclaredField.
Un saludo
No se puede, porque son clases diferentes, sin relación jerárquica, excepto que ambas descienden originalmente de Object.
Además de que usas una sintaxis inadecuada en Java, ¿instancias de clases en mayúsculas?
String paso = "ALERGIAS";
if(ALERGIAS.isSelect() == true){
}
paso es una instancia de la clase String, a la que asignas el valor "ALERGIAS"
Aunque ese valor coincida con la declaración de una instancia de JRadioButton, no convierte un String en un JRadioButton.
if(ALERGIAS.isSelect() == true) es una redundancia. if(ALERGIAS.isSelect()) es suficiente.
Bueno, aunque sea un poco ridiculo lo que he puesto funciona. Lo he verificado y solo hay un pequeno error:
if(((JRadioButton)this.getClass().getDeclaredField(paso).get(this)).isSelect()) {
Un saludo
No es lo mismo acceder a un método de un componente (mediante reflexión) a través de una propiedad del componente, que confundir la asignación de un String con la referencia de un JRadioButton.
Tal y como se ha planteado el mensaje inicial, se pretende que una instancia de la clase String pueda usar un método de la clase JRadioButton, por el simple hecho de que la referencia del JRadioButton sea idéntica a la asignación del String, lo que no es posible.
Voy a volver a repetirme, con el riesgo de convertirme en un loro, pero no veo ningún sentido a plantear preguntas y respuestas sin un SSCCE: un código compilable y ejecutable, que muestre el problema en cuestión, o su solución.
Gracias por todos estos comentarios
Agregue esta parte del proyecto que estoy ejecutando, pues obviamente no funciona si lo compilan, la idea es el contexto de lo que deseo realizar.
si observan lo que pasa, lo que me sucede es que se crearon una interfaz con una cantidad n de radio button, me pasaron esta interfaz y pues todos esos radio button tengo que almacenarlos si se seleccionaron en la bd. Yo hice la fácil cree una tabla elementos y agregue las variables de radioButton, para que dentro de un ArrayList pueda cargar el String con el nombre de la variable y dentro del if saber si ese radiobutton esta seleccionado
String paso = campo con el nombre de la variable;
if(paso.isSelected() == true) {
}
pues observando bien no es posible de esta manera me toca rediseñar la interfaz y hacer un arreglo de radioButton para poder acceder mas facil a ellos.
Gracias por todo.
Si hubieses empezado por ahí, describiendo el problema...
Los radio botones se puede agrupar:
http://docs.oracle.com/javase/tutorial/uiswing/components/button.html
http://docs.oracle.com/javase/7/docs/api/javax/swing/ButtonGroup.html
No es necesario crear ningún array de botones.
Buf choces, yo creo que lo del
-Cómo hacer preguntas de manera inteligente
-Consulta la documentación de javaHispano
No lo ve, lo lee ni lo respeta nadie. Llevamos una temporada que ya es cansino el nivel de detalles de las consultas. Quizas era mejor poner unas pocas reglas bien claras y concretas destacadas en el propio formulario de creación de post, por ejemplo, como se hace en stackoverflow o javaranch. Y si no se respetan, se cierra y listo.
Un saludo
Si se aplicasen aquí los mismos criterios que en Stackoverflow, por ejemplo, casi todos los hilos quedarían cerrados desde el principio.
Buen dia
Tengo una duda al utilizar un String cargado con el nombre de Variable de un JRadioButton, Lo que deseo realizar es lo siguiente
ALERGIAS = new javax.swing.JRadioButton();
alergias.add(ALERGIAS);
...
String paso = "ALERGIAS";
if(ALERGIAS.isSelect() == true){
}
Remplazar el if por el siguiente
if(paso.isSelect() == true){
}
Mi pregunta es si se puede realizar este cambio soy nuevo en aplicaciones de escritorio. Siempre he trabajado WEB