Uma pergunta de iniciante em java

Galera, voltei a estudar java, acompanhei alguns video do Curso em video, aprendi bastante, mas tem um codigo que eu não entendi muito bem para que serve, alguém pode me explicar pra que serve esse código?

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

fico mt grato por todas as respostas.

Documentação do invokeLater: https://docs.oracle.com/javase/10/docs/api/java/awt/EventQueue.html#invokeLater(java.lang.Runnable)

Como o @staroski indicou, é bom sempre procurar na documentação. Mas para adiantar o seu lado, já que para quem está começando a ter contato com o Java a pouco tempo e pelo de a documentação estar em inglês, talvez fique um tanto confuso.
Como prova de que dar nomes significativos a classes, interface, métodos, atributos, etc., é uma benção, vamos tentar entender os termos.

1 - java.awt: é o pacote que contém todas as classes necessárias para se cria uma interface gráfica com o usuário (GUI - Graphical User Interface), de uma forma bem menos formal, com janelas, botões, caixas de texto, etc. AWT vem de Abstract Window Toolkit - Kit de Ferramentas Abstrato para Janelas.
O AWT foi o primeiro sistema destinado a conferir a capacidade de trabalhar com sistemas de janelas (GUI) desenvolvido para a linguagem Java e reinou supremo (nativamente) até a versão JSE 1.2 (Java Standard Edition) - JCP 8, pág. 423 -, quando entrou em cena o pacote Swing. O AWT é dito abstrato porque não cabe a ele definir concretamente (a aparência e o comportamento), mas delega essas ações ao sistema nativo da plataforma (sistema operacional) conforme Deitel (Deitel, pág. 424):

[…] Os componentes AWT (muito dos quais são equivalentes dos componentes Swing) são vinculados à plataforma local e são chamados de componentes peso pesado, porque contam com o sistema de janela da plataforma local para determinar sua funcionalidade, sua aparência e comportamento.

Os componentes Swing (javax.swing), por sua vez, são uma biblioteca toda construída em Java que ao contrário de delegar as operações sobre os componentes GUI, provê ela mesma essa operação (com base nas classes de 2D da AWT). Como provê o controle completo sobre os componentes GUI, em qualquer plataforma eles se comportam de forma semelhante ao adotar um “look and Feel”.

2 - java.awt.EventEnqueue: EventEnqueue ou “fila de eventos” é uma classe independente de plataforma (sistema operacional) encarregada de enfileirar os eventos, tanto de classes comuns implícitas quanto de aplicativos confiáveis (Oracle Docs, 2018). Essa classe encapsula os algoritmos necessários ao envio de eventos assíncronos, ou seja, que ocorrem paralelamente com o fluxo de controle do programa e, independentemente deste (Deitel, pág. 342).

3 - java.awt.EventQueue.invokeLater(Runnable runnable): invokeLater ou “invoque depois” é uma método da classe EventQueue que faz com que classes que implementam a interface Runnable tenham seu método run chamado na thread (linha de um processo) de despacho da fila de eventos (EventQueue). Isso acontecerá depois que todos os eventos pendentes forem processados.
A coisa toda é muito mais do que isso e estudando por livros e, principalmente a documentação, tu consegue avançar mais.

#1 - O nome Swing vem de um estilo de dança dos Estados Unidos e fazia referência ao Jazz Swing da década de 1920-1950.

#2 - O “X” de javax historicamente denota a interface baseada em sistema de janelas.

#3 - JCP8 - Java Como Programar 8

1 curtida