Saludos,
Buenas primero que todo quiero decir que soy nuevo aqui, mi nombre es Juan Sebastian, y ya desde hace años he estado consultando la pagina pero no me habia registrado y no soy muy posteador.
En todo caso, aquí estaré para colaborar en lo que se pueda, y como las necesidades lo empujan a uno, me registre para consultar esto que me tiene mal la cabeza, y se trata...
Acerca de que tengo una Clase la cual hereda la clase JFrame:
public class Principal extends javax.swing.JFrame
{
public Principal()
{
}
}
Entonces supongo yo, que el JFrame viene siendo la misma clase, y para referenciar al JFrame desde la misma clase basta con colocar this.... y la propiedad a dar o incluso solo la propiedad ejem: setTitle..., sin this.
Si es referenciada desde otra Clase..., pruebo de estas formas:
- new Principal().show();
ó creo un metodo void dentro de la clase Principal la cual contenga this.setVisible(true);/this.show(); en el cuerpo y llamo el metodo desde la clase llamadora de esta forma:[/B]
- new Principal().Mostrarventana();
ó en el caso de que no fuera Extends/Heredado
- new Principal().JFrame0.show();
y que ejecute la linea correspondiente. Pero lo malo es que la llamada la tengo dentro de un JButton y cada vez que ejecuto el evento Abre otro JFrame nuevo ya por la clausula "new", reservada, pruebo con un If (new Principal().isShowing()==false) para comprobar si ya está abierto, pero como es otro objeto por la clausula new, entonces no detecta el que ya está abierto y abre otro y otro sin fin cada vez que presiono el boton.
Lo ultimo que queda por decir es que yo sé que si pudiera volver el JFrame ó la clase de una Forma "public static" podria referenciarlo algo así de esta forma:
Principal.JFrame0.show();
pero como se Hereda JFrame sería:
- Principal.show();
y no me arrojaria el JFrame nuevamente, ya que lo he probado con objetos creados JFrame JFrame0 = new JFrame(); y pues sí, solo lo muestra una vez referenciandolo de esta forma:
Principal.JFrame0.show();
En sí:
- Como hago para colocar la clase o el JFrame que sea statico, para así poder referenciarlo sin el new, porfavor ayudadenme que me estoy volviendo loco y no me digan que lo instancie:
Principal objetoprincipal = new Principal();
porque pienso que así se hace mas pesado y no me gustaria trabajarlo así, muchas gracias de Antemano
Pd: El 1° de Julio tengo un concurso en Senasoft, y se implementa la Herramienta Netbeans, por lo que al hacer un nuevo proyecto automaticamente me crea la Clase con el Extends JFrame y ya viene predeterminado así que es obligatoriamente y para ser mas rapido debo de trabajarlo así.
Muchas Gracias.
Atte. Juan Sebastian Reyes C