Boa noite, tenho um JFrame visivel, e ao clicar em um botao, é chamado um metodo de uma classe chamada engine que criei, nesse metodo da classe engine é executado alguns codigos e ao final deve-se esconder o JFrame(somente esconder, ou seja, usar o setVisible(false) ) porem nao consigo usar o setVisible em relação a classe em que esta o JFrame
Exemplo do código:
public class Engine
{
public void Cadastra()
{
...
...
...
...
Cadastro_Cadastrar.setVisible(false);
}
}
Claro…OBS: Maioria do código foi gerado pelo Netbeans(Form Designer)
public class Cadastro_Cadastrar extends javax.swing.JFrame {
public static String nomes[]=new String[20];
public static String sexo[]=new String[20];
public static String login[]=new String[20];
public static String senha[]=new String[20];
public static int aux=0;
public Cadastro_Cadastrar() {
initComponents();
}
Você está utilizando as variaveis de forma statica:
Então todo metodo e variavel declarada com “static” é acessivel da forma como você vem fazendo,
porém o metodo setVisible(false) não é estático, então você terá que instanciar o objeto Cadastro_Cadastrar (Cadastro_Cadastrar nomeDaVariavel = new Cadastro_Cadastrar()) para que possa chamar nomeDaVariavel.setVisible(false).
Caso você queira ter apenas 1 única instância do Cadastro_Cadastrar no seu programa todo, você deve utilizar o pattern Singleton…
Como fazer um singleton:
public class Cadastro_Cadastrar extends javax.swing.JFrame {
private static Cadastro_Cadastrar objeto = new Cadastro_Cadastrar();
private Cadastro_Cadastrar() {
initComponents();
}
public Cadastro_Cadastrar getInstance() {
return objeto;
}
.
.
.
}
Com isso de qualquer lugar do seu programa você pode chamar a instância utilizando:
acontece que eu possuo, um menu principal, e dele é possivel exibir o JFrame Cadastro_Cadastrar(), e ao finalizar os processos executados la, ele fica invisivel, para nao perder suas variaveis, entao se eu usar a instanciação dessa classe, vou estar iniciando outra classe e nao simplesmente deixando visivel o JFrame e retornando suas variaveis que ja possuem um valor que foi definido anteriormente, entende?
Estou com outro problema agora, preciso deixar o evento de um botao como STATIC, porem o codigo gerado pelo Netbeans pré-define ele como PRIVATE VOID, somente…existe algum meio para isso?
tem sim clica com o botao direito em cima do botao e vai na opiçao editar codigo fonte …
tem essas opiçoes la …
outra coisa vc usou frame.setVisivel(false) ele nao fexa a janela ela fica operando so que invisivel ou seja se vc abrir 1000 janelas elas vao estar la …
vc so nao vai velas … oa inves de usar frame.setVisivel(false) tente usar this.dispose(); … nisso a janela sera fexada e a operaçao dela tambem …