public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new NovoFrame().setVisible(true);
}
});
}
o que significa issi?
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new NovoFrame().setVisible(true);
}
});
}
o que significa issi?
Quando postar trechos de código fonte, coloque-os entre a tag code, para facilitar a visualização, conforme descrito neste tópico: http://www.guj.com.br/java/50115-voce-e-novo-no-guj-vai-criar-um-topico-e-colar-seu-codigo-fonte-leia-aqui-antes-por-favor
Quanto a sua dúvida, o EventQueue.invokeLater empilha um pedido de execução na event dispatching thread do Swing, fazendo com que a criação do NovoFrame seja feita na thread do Swing.
Uma explicação melhor e mais detalhada você encontra aqui: http://www.guj.com.br/java/217381-duvida-passagem-de-parametros-entre-classes-gui-swing#1110141
Quando postar código, use a tag code:
Respondendo a sua pergunta:
java.awt.EventQueue.invokeLater
Esse código chama o método invokeLater da classe EventQueue.
A classe EventQueue representa a fila de mensagem da thread do Swing. O swing roda num loop, que constantemente retira uma requisição dessa fila e a processa.
O método invokeLater agenda um Runnable qualquer para ser executado nessa fila.
new Runnable() {
public void run() {
//Qualquer coisa aqui
}
}
Cria uma classe anônima, que implementa a interface Runnable, e executa o que quer que tenha dentro do método run. É isso que a thread do Swing irá executar.
new NovoFrame().setVisible(true);
Deixa um frame visível.
Isso está assim porque você só pode alterar componentes do Swing na thread do Swing. Entretanto, o main roda na main thread e, por isso, ele deve pedir a fila de eventos para que o Swing rode mais tarde o comando de deixar a tela visível.