É a classe principal para fazer janelas do Swing, veja este primeiro exemplo, que cria a classe Janela1 como filha da classe JFrame, e no método main cria um objeto da classe e chama o método show() para que a janela seja exibida
Janela1.java
|
01 package br.com.thz;
02
03 import javax.swing.JFrame;
04
05 public class Janela1 extends JFrame {
06
07 public Janela1() {
08 }
09
10 public static void main(String[] args) {
11 Janela1 janela = new Janela1();
12 janela.show();
13 }
14 }
|
O resultado desta exibição na verdade não serve para muita coisa, visto que cria uma janela que aparentemente só tem a barra de título e mais nada… vamos avançãr para o próximo exemplo e vamos definir a largura e a altura da janela em questão
Janela2.java
|
01 package br.com.thz;
02
03 import javax.swing.JFrame;
04
05 public class Janela2 extends JFrame {
06
07 public Janela2() {
08 }
09
10 public static void main(String[] args) {
11 Janela2 janela = new Janela2();
12 // largura, altura
13 janela.setSize(200, 100);
14 janela.show();
15 }
16 }
|
As coisas começam a ficar um pouco melhores, já temos uma janela smile Mas podemos melhorar um pouco mais, vamos colocar um ícone nesta janela para exemplificar melhor o propósito de nossa aplicação, para tal no diretóio raiz do projeto é necessário criar uma pasta com a imagem que vamos usar, conforme a ilustração abaixo

Veja a mesma classe agora com o título e o ícone adicionado
Janela3.java
|
01 package br.com.thz;
02
03 import javax.swing.ImageIcon;
04 import javax.swing.JFrame;
05
06 public class Janela3 extends JFrame {
07
08 public Janela3() {
09 }
10
11 public static void main(String[] args) {
12 Janela3 janela = new Janela3();
13 janela.setSize(400, 200);
14
15 // titulo da janela
16 janela.setTitle("Janela de Teste");
17
18 // carrega imagem do disco
19 ImageIcon icone = new ImageIcon("image/pizza.gif");
20
21 // atribui imagem a janela
22 janela.setIconImage(icone.getImage());
23 janela.show();
24 }
25 }
|
Deve ter sido observado que apesar de fechar as janelas o programa chamado ainda fica ativo, isto se deve ao fato de que o programa fica independente da Janela que foi exibida, vamos agora determinar que ao fechar a janela o programa também deve ser fechado, e além disto vamos colocar a janela centralizada na tela.
Neste exemplo todas as alterações na subclasse de JFrame passamos a fazer no construtor de maneira que esta resposabilidade de alterações visuais seja da própria classe, para os casos em que o método main que chamar a janela estiver em outra classe.
Janela4.java
|
01 package br.com.thz;
02
03 import javax.swing.ImageIcon;
04 import javax.swing.JFrame;
05
06 public class Janela4 extends JFrame {
07
08 public Janela4() {
09 setSize(400, 200);
10 setTitle("Janela de Teste");
11 ImageIcon icone = new ImageIcon("image/pizza.gif");
12 setIconImage(icone.getImage());
13
14 // termina aplicação quando fechar a janela
15 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
16
17 // centraliza a janela na tela
18 setLocationRelativeTo(null);
19 }
20
21 public static void main(String[] args) {
22 Janela4 janela = new Janela4();
23 janela.show();
24 }
25 }
|
Este é o resultado final da nossa Janela