Como criar uma janela usando JFrame
Bom pessoal, o codigo que postarei aqui eu retirei do livro Introduction to GUI with Java Swing, que comecei a ler.
Esta é primeira aplicaçao que colocarei aqui entre muitas outras que colocarei ao decorrer da leitura.
Ela é bem simples, a função dela é apenas mostrar uma janela simples na tela, sem componente nenhum.
Fiz uma pequena modificação para funcionar sem precisar criar o pacote, visto que ele estava dentro de um, package its.SimpleFrame;.
Segue o codigo:
import javax.swing.JFrame;
public class SimpleFrame extends JFrame
{
public SimpleFrame()
{
this.setSize(200,200);
this.setLocation(200,200);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
//Makes the frame visible
public void showIt() {
this.setVisible(true);
}
//Makes the frame visible and sets the title text.
public void showIt(String title){
this.setTitle(title);
this.setVisible(true);
}
//Makes the frame visible and sets the title text
//and the position of the window
public void showIt(String title,int x,int y){
this.setTitle(title);
this.setLocation(x,y);
this.setVisible(true);
}
//Makes the frame invisible
public void hideIt(){
this.setVisible(false);
}
}
O codigo acima é apenas um, vamos dizer assim, montador da janela. Atravez da proxima aplicação é que é executado o codigo acima.
public class SimpleFrameDriver
{
public static void main(String[] args)
{
SimpleFrame sFrame1 = new SimpleFrame();
SimpleFrame sFrame2 = new SimpleFrame();
sFrame1.showIt("SimpleFrame 1");
sFrame2.showIt("SimpleFrame 2",300,300);
}
}
Bem, o que ele faz é bem simples. Ele cria varios metodos sobrecarregados. Isto quer dizer, metodo com nomes iguais porem que recebem argumentos diferentes.
SimpleFrame sFrame1 = new SimpleFrame(); SimpleFrame sFrame2 = new SimpleFrame();
Nesta duas linhas ele cria os objetos sFrame1 e sFrame2.
sFrame1.showIt("SimpleFrame 1");
sFrame2.showIt("SimpleFrame 2",300,300);
Nestas duas linhas ele chama os seguintes metodos showIt:
public void showIt(String title){
this.setTitle(title);
this.setVisible(true);
}
public void showIt(String title,int x,int y){
this.setTitle(title);
this.setLocation(x,y);
this.setVisible(true);
}
Apesar do nome e do modificador de acesso e o retorno serem identicos, o parametro é diferente. Isso é diferente para o JVM, para ele, estes metodos nao sao iguais. O metodo hideIt() ele colocou no codigo apenas para falar ( no livro esta falando ) que se voce executar este metodo, o programa ainda continuara rodando. Ou seja, vamos dizer que voce tivesse um botao e ao clicar ele chamasse este metodo. O que iria acontecer é que o JFrame ficaria invisivel, mas nao fecharia. Se por acasso voce abrisse outro programa e fechasse novamente do mesmo modo, abrisse outro.. e assim por diante.. isto consumiria muita memoria. Para fechar um JFrame, tem que ser atravez do atributo setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);. Nao irei mostrar, apenas mencionar. No curso do neri vi que tem outros tipos de constantes estaticas (final static… Orientação a Objetos hein pessoal) igual a esta. Vamos dizer que seu programa tivesse um botao que abriria um novo JFrame. Se voce coloca o setDefault.. Isto fecharia todo o programa. Por isto, existe a constante DISPOSE_ON_CLOSE. Se por acaso alguem quiser ver um uso disso tudo que falei e nao mostrei, peça. Nao irei fazer o tutorial se nao tiver certeza que alguem ira ler ne… Bom, abaixo segue uma imagem da execução do codigo mostrado acima.

Qualquer duvida sobre o codigo aqui descrito, pergunte! Nao fique com medo de perguntar.
Espero que voces tenham gostado e ate a proxima.
Abraços