Vou tentar ser o mais didático possivel para não te confundir nesse Hello World
package teste;
/**
* Os imports são as classes externas que a aplicação mantem dependencia.
* Por exemplo a classe JButton que produz botoes e que chamamos durante a execução para requerer
* um botão.
*/
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JOptionPane;
/**
* OBS:
* JFrame é Form do delphi
* JPanel é o Frame do delphi
*/
/**
* Isso e um comentario do tipo javadoc(pesquise mais sobre ele), passe o mouse sobre o nome da classe
* Perceba que a classe extende para JFrame, isso quer dizer que o construtor dela
* produz um Frame e que por ela ser filha de JFrame, ira produzir uma tela.
*
*/
@SuppressWarnings("serial")
public class Frame extends javax.swing.JFrame {
/**
* Criação de todos os componentes da classe ou variaveis de visão par todos os metodos
*/
JButton botao;
/**
* Esse e o metodo main, metodo principal da classe quando a classe é executada,
* ele é o primeiro a rodar, em seguida ele chama qual ele quiser... validar cpf... mandar email... realizar cálculos, enfim, cada metodo deve realizar uma tarefa
* Para você entender melhor sobre metodos, você pode procurar saber mais sobre Orientação a Objeto.
* A principio entenda metodo como quase uma procedure (não me xinguem, eu disse quase)
* @param args
*/
public static void main(String[] args) {
/**
* Chamando o metodo que ira construir a tela
*/
Frame inst = new Frame();
/**
* Nesse momento toda a tela ja foi montada, so falta voce dar um visible nela
*/
inst.setVisible(true);
/**
* Agora a tela é visivel.
*/
}
/**
* Construtor da classe.
* Se ela extende a JFrame, então esse metodo ira construir o frame
*/
public Frame()
{
/**
* Este.mandoUmTamanho(400,300)
* Se estou dentro do construtor do frame, o this se refere a ele.
*/
this.setSize(400,300);
this.setTitle("Hello World");
/**
* O usuario não vai redimensionar a tela
*/
this.setResizable(false);
/**
* O frame vai iniciar no meio da tela
*/
this.setLocationRelativeTo(null);
/**
* Quando fechamos o form no [X], não quer dizer que os processos relacionados a sua aplicação tenham sido matados
* Para isso usamos isso que é para dizer que depois que a parte visual for fechada, mata-se todos os processos relacionados,
* se não você vai ficar cheio de processo aberto mesmo tendo fechado os frames
*/
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
/**
* Definindo o layout da tela, poderia ser em forma de tabela, cada componente teria sua posição x y medida em celula, por exemplo:
* se eu dividisse a tela em quatro colunas e quatro linhas, eu poderia colocar um botão na celula 1,1 ou na celula mais proxima do centro
* da tela, quando a tela fosse redimensionada, as celulas tambem seriam e consequentemente os componentes.
* Vamos deixar sem layoute, para isso vamos definir a posição dos componentes na tela em medida de pixel
*/
this.setLayout(null);
/**
* Vamos colocar um botão
* Na criação do botão foi chamado o construtor do botão onde passei seu caption.
* Não precisava ter sido assim, poderia ter sido assim:
* JButton botao = new JButton();
* botao.setText("Me aperte");
*
* Mas nada que impeça de voce mudar o caption dele depois disso, é usar: nomeDoBotao.setText("Caption");
*/
botao = new JButton("Me aperte");
/**
* Definindo respectivamente a posição e tamanho do botão
* setBounds(posicao x,posicao y, comprimento, altura)
*/
botao.setBounds(147, 101, 100, 50);
/**
* Adicionando o botão.
* Sabemos que ele será adicionado ao frame pois estamos no construtor dele. Mas poderiamos colocalo dentro de outro
* componente mesmo estando dentro do construtor. Para coloca-lo por exemplo em JPanel, poderiamos colocar:
* nomeDoJPanel.add(bota);
*
* mas o nomeDoJPanel devera estar adicionado ao Frame.
*/
add(botao);
/**
* Evento do botão, quando ele for clicado, esse actionListener será executado.
*/
botao.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
/**
* Emitindo uma mensagem
*/
JOptionPane.showMessageDialog(null, "Hello World", "Hello World titulo", JOptionPane.WARNING_MESSAGE);
}
});
}
}
Coloque isso no seu editor de texto e salve como Frame.java
Feito isso, vá ao seu console (prompt) e caminhe até o caminho onde você salvou o Frame.java, (OBS: O NOME DO .java DEVE TER O MESMO NOME DA CLASSE QUE ESTÁ DECLARADA NO CODIGO, NESSE CASO: Frame) use “cd caminhoDoArquivo”
Dê o comando: javac Frame.java >> Isso é para compilar o arquivo, nesse instante irá aparecer o arquivo Frame.class
Dê o comando: java Frame >> Irá rodar a classe se você ainda estiver no mesmo diretorio dela.
Para compilar e rodar via consele você vai precisar ter as variáveis de ambiente configuradas (procure saber mais sobre isso)
Ou…
Cole o código fonte no eclipse e rode.
As ferramentas mais usadas são Eclipse e Netbeans, tente baixar o eclipse, no momento vai ser melhor para você aprender, quando entender melhos as coisas, ai tu pode partir para o Netbeans, é que ele é meio na base dos “properties” com barras de ferramentas pra mil e uma coisa, mas não vai adiantar nada se você não souber o que cada uma faz.
No eclipse você vai precisar criar um package (dê o nome de teste pois nossa classe ja traz isso na primeira linha) e uma classe com esse nome: Frame
Para criar a estrutura:
Com o eclipse aberto, vá em File>new>java project
Para criar o package, dê botão direito em cima do projeto criado (pasta azul)>new>package
Para criar a classe, botão direito em cima do package> new> class
Após gerar a classe, substitua TODO o conteudo pelo nosso exemplo.
Só dar run agora… (botãozinho verde em forma de >)
Lembrando, não esqueça que:
JRE >> Java Runtime Enviroment > Roda aplicação, usado pelos usuarios
JDK >> Java Development Kit > Kit do desenvolvedor, compila, roda, gera documentação, enfim… você precisa desse.
Espero ter ajudado. uma hora e vinte para fazer essa explicação…