Jump to content
Sign in to follow this  
Acruz

Dúvida navegação entre jpanels

Recommended Posts

Acruz

Boas

Estou a tentar iniciar-me no java, já programava alguma coisa em VB, mas agora necessito de uma aplicação em java.

Estou a sentir dificuldades em fazer a navegação entre os forms que crio.

Podem me dar algumas luzes acerca disso. E que no vb era so o nome do form.show();

Aguardo resposta

Obrigado

Share this post


Link to post
Share on other sites
Knitter

Depende do que entendes por "form".

Em Java, e assumindo que estás a usar Swing e não SWT, AWT ou outra framework, tens a classe JFrame, que representa uma janela de uma aplicação e que deverá existir apenas uma por aplicação, e tens a classe JDialog que é usada para mostrar outras janelas dentro da mesma aplicação. Qualquer uma delas pode ser mostrada através do método setVisible(true) ou escondida através do mesmo método ou do dispose().

Share this post


Link to post
Share on other sites
Acruz

exactamente é isso.

Então o que me está a queres dizer, quando faço um action num botão se eu colocar esses métodos conseguirei apresentar ou esconder os Jframes?

Eu uso o netbeans um aspecto que eu notei e quando eu crio uma nova classe e tento invocar alguma função na main.java ele não me consegue estabelecer uma ligação e por vário tutorials que vi pela net é só invocar a função com um objecto normal mas dá erro.

Vou dar um exemplo que criei através de um tutorial para me tentar explicar melhor.

ficheiro  form.java

import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;


public class tuna extends JFrame {

    private JLabel item1;
    
    public tuna () {
        super("Titulo da janela");
        setLayout(new FlowLayout());

        item1 = new JLabel("Ola mundo");
        add(item1);
    }
    
}

no ficheiro main.java faço da seguinte maneira

import javax.swing.JFrame;


public class Main {

    public static void main(String[]args) {

        form variavel = form();
        variavel.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        variavel.setSize(150,150);
        variavel.setVisible(true);


    }

}

dá erro na linha onde está form variavel = form();

Share this post


Link to post
Share on other sites
Knitter

Onde é que está a classe "form"? Estás a criar um objecto que suponho seja do tipo "form" mas ele não está no exemplo que colocaste.

Se queres instanciar a JFrame que criaste terias de fazer:

tuna = new tuna();

Uma vez que, pelo exemplo, "tuna" é a tua classe que estende de JFrame.

Como nota, o nome das classes em Java, é escrito com letra maiúscula, no teu exemplo "Tuna" ao contrário do "tuna" que tens neste momento. Usar as convenções da linguagem ajuda a que outras pessoas consigam facilmente perceber o teu código. Outra coisa, o setSize e o setDefaultOperation fazem mais sentido ser escritos dentro da JFrame e não fora, a JFrame é que deverá saber de que tamanho é que deve ser e qual a sua operação por omissão nos eventos de fecho, além disso facilita quando estiveres a usar layouts e outros métodos que são necessários em janelas mais complexas.

Para terminar, uma JFrame, ou uma JDialog devem ser criadas sempre através da thread de trabalho do Swing e de forma delegada para que a aplicação seja mais rápida a arrancar e a executar. Por exemplo:


java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new tuna().setVisible(true);
                //passados para o código da classe tuna
                //variavel.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                //variavel.setSize(150,150);
            }
        });

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.