Duvida ao abrir formulario

4 respostas
Z

Amigos, desculpa a ignorancia, mas como estou começando por favor peço paciencia

Gostaria de saber se alguem pode me ajudar na seguinte questão.

Eu aprendi que quando fosse abrir um formulario ( por exemplo por um menu ) e este formulario chama clientes eu deveria fazer o seguinte código.

Clientes Cl = new Clientes
Cl.setvisible = true

Oque me explicaram é que… em java praticamente tudo é Objetos… e se eu quero abrir o formulario ( um objeto ) eu tenho que instancia-lo.

Eu entendi… mas estava vendo um tutorial ( um video aula ) e o cara faz o executa o seguinte codigo

Clientes.main();

Ele dis que roda em threads… processos em concorrencias…

Qual a diferencia dos codigos? Qual forma correta… coisa confusa =x

Muito obrigado

sds,

4 Respostas

analyser

Meu amigo se ta perdido em, querendo entender threads antes mesmo de saber como funciona o JAVA direito, sugiro que antes de tudo, estude as coisas básicas de JAVA, uma boa é a apostila da Caelum, que eles disponibilizam no site, muito boa mesmo.

De uma olhada, talvez grande parte de suas duvidas sejam sanadas nela.

Abs

Z

Amigo, eu sei oque é thread e como funciona… só não tenho pratica para coloca-la para funcionar.

Eu gostaria de saber qual a diferenca acima

sds,

Z

Paulo muito obrigado !

Era exatamente esta minha duvida, entendi tudo :slight_smile:

Muito obrigado novamente,

Sds, !!!

E

Ola Zabeu,

bom tirando suas duvidas, nos codigos que voce apresentou eu não vejo diferença. A unica diferença entre eles é que um voce instancia direto e o outro voce esta chamando um metodo estatico de uma classe, que provavelmente faz as instanciações dentro dele.

Voce instanciando
Clientes Cl = new Clientes
Cl.setvisible = true

Estatico
Clientes.main();

O segundo é o mais adequado por questão de responsabilidade da classe, ela é responsavel pelo seus atributos e facilita a manutenção do codigo. Mas não existe nenhuma diferença entre os dois com relação a utilizar threads, os dois utilizam threads ao criar o formulario. O que pode haver é diferença no momento de criar a thread que gerencia o formulario.

por uma questão de gerenciamento mais adequado das Threads que são carregadas na JVM sugiro que utilize o codigo abaixo para invocar o formulario. A classe javax.swing.SwingUtilities.invokeLater que é utilizada nele foi criada para evitar problemas com threads no swing. Se precisar de mais informações da uma olhada nessa pagina da sun tem varios toques interessantes sobre essa questão (http://java.sun.com/docs/books/tutorial/uiswing/), o codigo que estou colando aqui eu peguei de la.

import javax.swing.*;

public class HelloWorldSwing {

/**

* Create the GUI and show it.  For thread safety,

* this method should be invoked from the

* event-dispatching thread.

*/

private static void createAndShowGUI() {

//Create and set up the window.

JFrame frame = new JFrame(HelloWorldSwing);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Add the ubiquitous "Hello World" label.
    JLabel label = new JLabel("Hello World");
    frame.getContentPane().add(label);

    //Display the window.
    frame.pack();
    frame.setVisible(true);
}

public static void main(String[] args) {
    //Schedule a job for the event-dispatching thread:
    //creating and showing this application's GUI.
    javax.swing.SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            createAndShowGUI();
        }
    });
}

}

Espero ter ajudado

Paulo

Criado 21 de julho de 2009
Ultima resposta 22 de jul. de 2009
Respostas 4
Participantes 3