Boa tarde a todos, seguindo meus tutoriais básicos e objetivos de Java, vamos agora brincar um pouco com interface gráfica. Vamos criar algumas janelas usando o Swing e brincar um pouco com as propriedades delas:
Requisitos
1. JRE e JDK instaladas. Caso não tenha clique aqui
2. Qualquer editor que colori o código para você. Pode ser até o Notepad, mas não recomendo. Caso não tenha um clique aqui
Bom, Swing é um pacote que contém uma serie de componentes visuais do Java, ele vem do AWT, que... e... e mais um blah blah blah que parece romance de Shakespeare...
O importante é você saber que Swing é um componente e se você vai usar qualquer coisa dele você tem que importar/incluir ele para sua classe usando import
import javax.swing.*;
Após importar esse pacote você poderá utilizar tudo que tem dentro dele.
A partir dai podemos trabalhar com janelas, que é o tema deste tópico, construindo elas é setando as propriedades delas, é tão facil como controlar tags html através de css só que o jeito de escrever é totalmente diferente e tem maiores "funcionalidades".
Quando você estiver trabalhando com Swing você pode entender a palavra janela como JFrame.Janela simples
1.Abra o seu editor
2.Importe os componentes do Swing
import javax.swing.*; //Importa todos os pacotes gráficos do swing
3.Inicie uma classe
public class JFrame_simples extends JFrame { // aplicativo
}
4.Extenda ela do componente JFrame que vem lá daquele pacote javax.swing que você importou
public class JFrame_simples extends JFrame { // aplicativo
}
5.Crie um metodo construtor com o mesmo nome da sua classe
public JFrame_simples() {
}
6."Herde o conteudo" JFrame com um super e altere o nome da janela
public JFrame_simples() {
super("janela teste"); //define o titulo da aplicação
}
7.Insira as proriedades basicas da janela, ou seja tamanho e visibilidade
public JFrame_simples() {
super("janela teste"); //define o titulo da aplicação
setSize(300,300);
setVisible(true);
}
8.Construa um metodo main para iniciar a aplicação
public static void main(String args[]){
}
9.Chame sua classe (aplicação) dentro do metodo main
public static void main(String args[]){
JFrame_simples app = new JFrame_simples(); // Objeto app que decende da classe JFrame_simples instância o conteúdo do Método Teste pois ele é o construtor da classe.
}
10.Defina como a aplicação irá se comportar quando alguém tentar fechar ela
public static void main(String args[]){
JFrame_simples app = new JFrame_simples(); // Objeto app que decende da classe JFrame_simples instância o conteúdo do Método Teste pois ele é o construtor da classe.
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Seta o comportamento ao usuário fechar a janela
/* HIDE_ON_CLOSE = Quando o usuário fechar o programa vai sumir, mas continuará em execução
* DO_NOTHING_ON_CLOSE = Não fecha
* DIPOSE_ON_CLOSE = Libera da memoria quando o usuario tentar fechar tanto o aplicativo quanto os componentes depois fica invissivel
* EXIT_ON_CLOSE = fecha normal
*/
}
Pronto, no final o código fica assim:
public class JFrame_simples extends JFrame { // aplicativo
// Metodo construtor, que constroi a janela
public JFrame_simples() {
super("janela teste"); //define o titulo da aplicação
setSize(300,300);
setVisible(true);
}
// Main: chama a janela iniciando a aplicação
public static void main(String args[]){
JFrame_simples app = new JFrame_simples(); // Objeto app que decende da classe JFrame_simples instância o conteúdo do Método Teste pois ele é o construtor da classe.
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Seta o comportamento ao usuário fechar a janela
/* HIDE_ON_CLOSE = Quando o usuário fechar o programa vai sumir, mas continuará em execução
* DO_NOTHING_ON_CLOSE = Não fecha
* DIPOSE_ON_CLOSE = Libera da memoria quando o usuario tentar fechar tanto o aplicativo quanto os componentes depois fica invissivel
* EXIT_ON_CLOSE = fecha normal
*/
}
// junin
}
Agora vamos testar:
1.Salve como JFrame_simples.java em C:/
2.Abra o cmd, navegue até o c:/ e digite javac JFrame_simples.java
Deu pau?!
E agora José???
Identificação de erros é uma das, se não a, parte mais importante de se programar em Java. Você deve ter se assustado com o tamanho da msg de erro que apareceu, mas não se preocupe, essa é pequena tem StackTrace (msg de erro) que dão medo até nos mortos.
Mas o importante normalmente é curtinho, nesse caso é só isso aqui
JFrame_simples.java:11: cannot find symbol
symbol: class JFrame
O interpretador tá dizendo que não encontrou o simbolo JFrame, na linha
public class JFrame_simples extends JFrame {
Isso porque não importamos o swing no nosso código, para usar qualquer coisa do swing, temos que importar o swing.
Então vamos lá:
import javax.swing.*;
public class JFrame_simples extends JFrame { // aplicativo
// Metodo construtor, que constroi a janela
public JFrame_simples() {
super("janela teste"); //define o titulo da aplicação
setSize(300,300);
setVisible(true);
}
// Main: chama a janela iniciando a aplicação
public static void main(String args[]){
JFrame_simples app = new JFrame_simples(); // Objeto app que decende da classe JFrame_simples instância o conteúdo do Método Teste pois ele é o construtor da classe.
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Seta o comportamento ao usuário fechar a janela
/* HIDE_ON_CLOSE = Quando o usuário fechar o programa vai sumir, mas continuará em execução
* DO_NOTHING_ON_CLOSE = Não fecha
* DIPOSE_ON_CLOSE = Libera da memoria quando o usuario tentar fechar tanto o aplicativo quanto os componentes depois fica invissivel
* EXIT_ON_CLOSE = fecha normal
*/
}
}
Compile denovo (javac)
Digite java -cp c:; JFrame_simples
Propriedades de comportamento da janela
Agora vamos brincar com algumas propriedades para abertura e personalizacao de janelas
Janela maximizada/minimizada
import javax.swing.*; //Importa todos os pacotes gráficos do swing
public class JFrame_centralizado extends JFrame { // aplicativo
// Metodo construtor, que constroi a janela
public JFrame_centralizado() {
super("janela teste"); //define o titulo da aplicação
setSize(300,300); // define o tamanho
setVisible(true); /// define se a janela é vissivel
setLocationRelativeTo(null);
}
// Main: chama a janela iniciando a aplicação
public static void main(String args[]){
JFrame_centralizado app = new JFrame_centralizado(); // Objeto app que decende do metodo Teste instancia o conteudo do Metodo Teste
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Seta o comportamento ao usuário fechar a janela
/* HIDE_ON_CLOSE = Quando o usuário fechar o programa vai sumir, mas continuará em execução
* DO_NOTHING_ON_CLOSE = Não fecha
* DIPOSE_ON_CLOSE = Libera da memoria quando o usuario tentar fechar tanto o aplicativo quanto os componentes depois fica invissivel
* EXIT_ON_CLOSE = fecha normal
*/
}
}
Janela com tamanho fixo
import javax.swing.*; //Importa todos os pacotes gráficos do swing
public class JFrame_fixo extends JFrame { // aplicativo
// Metodo construtor, que constroi a janela
public JFrame_fixo() {
super("janela teste"); //define o titulo da aplicação
setSize(300,300); // define o tamanho
setVisible(true); /// define se a janela é vissivel
setResizable(false); // define que o tamanho da janela não pode ser alterado
}
// Main: chama a janela iniciando a aplicação
public static void main(String args[]){
JFrame_fixo app = new JFrame_fixo(); // Objeto app que decende do metodo Teste instancia o conteudo do Metodo Teste
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Seta o comportamento ao usuário fechar a janela
/* HIDE_ON_CLOSE = Quando o usuário fechar o programa vai sumir, mas continuará em execução
* DO_NOTHING_ON_CLOSE = Não fecha
* DIPOSE_ON_CLOSE = Libera da memoria quando o usuario tentar fechar tanto o aplicativo quanto os componentes depois fica invissivel
* EXIT_ON_CLOSE = fecha normal
*/
}
}
Janela centralizada
import javax.swing.*; //Importa todos os pacotes gráficos do swing
public class JFrame_centralizada extends JFrame {
// Metodo construtor, que constroi a janela
public JFrame_centralizada() {
super("janela teste"); //define o titulo da aplicação
setSize(300,300); // define o tamanho
setVisible(true); // define se a janela é vissivel
setLocationRelativeTo(null); // define que a janela vai abrir no centro da tela
}
// Main: chama a janela iniciando a aplicação
public static void main(String args[]){
JFrame_centralizada app = new JFrame_centralizada(); // Objeto app que decende do metodo Teste instancia o conteudo do Metodo Teste
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Seta o comportamento ao usuário fechar a janela
/* HIDE_ON_CLOSE = Quando o usuário fechar o programa vai sumir, mas continuará em execução
* DO_NOTHING_ON_CLOSE = Não fecha
* DIPOSE_ON_CLOSE = Libera da memoria quando o usuario tentar fechar tanto o aplicativo quanto os componentes depois fica invissivel
* EXIT_ON_CLOSE = fecha normal
*/
}
}
Janela com cor de fundo
import javax.swing.*; //Importa todos os pacotes gráficos do swing
import java.awt.*; // Importa o awt pois vamos usar objetos do tipo Container que está no pacote awt
public class JFrame_background extends JFrame {
// Metodo construtor, que constroi a janela
public JFrame_background() {
super("janela teste"); //define o titulo da aplicação
Container janela = getContentPane(); // constroi o oobjetoo janela como sendo um container
janela.setBackground(Color.black); // seta a propriedade do container janela
/* janela.setBackground(new Color(255,150,150)); // seta cor personalizada em rgb */
setSize(300,300); // define o tamanho
setVisible(true); // define se a janela é vissivel
setLocationRelativeTo(null); // define que a janela vai abrir no centro da tela
}
// Main: chama a janela iniciando a aplicação
public static void main(String args[]){
JFrame_background app = new JFrame_background(); // Objeto app que decende do metodo Teste instancia o conteudo do Metodo Teste
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Seta o comportamento ao usuário fechar a janela
/* HIDE_ON_CLOSE = Quando o usuário fechar o programa vai sumir, mas continuará em execução
* DO_NOTHING_ON_CLOSE = Não fecha
* DIPOSE_ON_CLOSE = Libera da memoria quando o usuario tentar fechar tanto o aplicativo quanto os componentes depois fica invissivel
* EXIT_ON_CLOSE = fecha normal
*/
}
}
Janela com icone personalizado
import javax.swing.*; //Importa todos os pacotes gráficos do swing
import java.awt.*; // Importa o awt pois vamos usar objetos do tipo Container que está no pacote awt
public class JFrame_icone extends JFrame {
// Metodo construtor, que constroi a janela
public JFrame_icone() {
super("janela teste"); //define o titulo da aplicação
Container janela = getContentPane(); // constroi o oobjetoo janela como sendo um container
janela.setBackground(Color.black); // seta a propriedade do container janela
/* janela.setBackground(new Color(255,150,150)); // seta cor personalizada em rgb */
ImageIcon icone = new ImageIcon("img/icone.png"); // seta o icone a ser usado
setIconImage(icone.getImage());
setSize(300,300); // define o tamanho
setVisible(true); // define se a janela é vissivel
setLocationRelativeTo(null); // define que a janela vai abrir no centro da tela
}
// Main: chama a janela iniciando a aplicação
public static void main(String args[]){
JFrame_icone app = new JFrame_icone(); // Objeto app que decende do metodo Teste instancia o conteudo do Metodo Teste
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Seta o comportamento ao usuário fechar a janela
/* HIDE_ON_CLOSE = Quando o usuário fechar o programa vai sumir, mas continuará em execução
* DO_NOTHING_ON_CLOSE = Não fecha
* DIPOSE_ON_CLOSE = Libera da memoria quando o usuario tentar fechar tanto o aplicativo quanto os componentes depois fica invissivel
* EXIT_ON_CLOSE = fecha normal
*/
}
}
Bom por enquanto é isso pessoal, quem quiser pode baixar os exemplos em anexo
Pergunta
Norivan Oliveira
Boa tarde a todos, seguindo meus tutoriais básicos e objetivos de Java, vamos agora brincar um pouco com interface gráfica. Vamos criar algumas janelas usando o Swing e brincar um pouco com as propriedades delas:
Requisitos
1. JRE e JDK instaladas. Caso não tenha clique aqui
2. Qualquer editor que colori o código para você. Pode ser até o Notepad, mas não recomendo. Caso não tenha um clique aqui
Bom, Swing é um pacote que contém uma serie de componentes visuais do Java, ele vem do AWT, que... e... e mais um blah blah blah que parece romance de Shakespeare...
O importante é você saber que Swing é um componente e se você vai usar qualquer coisa dele você tem que importar/incluir ele para sua classe usando import
Após importar esse pacote você poderá utilizar tudo que tem dentro dele. A partir dai podemos trabalhar com janelas, que é o tema deste tópico, construindo elas é setando as propriedades delas, é tão facil como controlar tags html através de css só que o jeito de escrever é totalmente diferente e tem maiores "funcionalidades". Quando você estiver trabalhando com Swing você pode entender a palavra janela como JFrame. Janela simples 1.Abra o seu editor 2.Importe os componentes do Swing 3.Inicie uma classepublic class JFrame_simples extends JFrame { // aplicativo }4.Extenda ela do componente JFrame que vem lá daquele pacote javax.swing que você importoupublic class JFrame_simples extends JFrame { // aplicativo }5.Crie um metodo construtor com o mesmo nome da sua classepublic JFrame_simples() { }6."Herde o conteudo" JFrame com um super e altere o nome da janelapublic JFrame_simples() { super("janela teste"); //define o titulo da aplicação }7.Insira as proriedades basicas da janela, ou seja tamanho e visibilidadepublic JFrame_simples() { super("janela teste"); //define o titulo da aplicação setSize(300,300); setVisible(true); }8.Construa um metodo main para iniciar a aplicaçãopublic static void main(String args[]){ }9.Chame sua classe (aplicação) dentro do metodo mainpublic static void main(String args[]){ JFrame_simples app = new JFrame_simples(); // Objeto app que decende da classe JFrame_simples instância o conteúdo do Método Teste pois ele é o construtor da classe. }10.Defina como a aplicação irá se comportar quando alguém tentar fechar elapublic static void main(String args[]){ JFrame_simples app = new JFrame_simples(); // Objeto app que decende da classe JFrame_simples instância o conteúdo do Método Teste pois ele é o construtor da classe. app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Seta o comportamento ao usuário fechar a janela /* HIDE_ON_CLOSE = Quando o usuário fechar o programa vai sumir, mas continuará em execução * DO_NOTHING_ON_CLOSE = Não fecha * DIPOSE_ON_CLOSE = Libera da memoria quando o usuario tentar fechar tanto o aplicativo quanto os componentes depois fica invissivel * EXIT_ON_CLOSE = fecha normal */ }Pronto, no final o código fica assim:public class JFrame_simples extends JFrame { // aplicativo // Metodo construtor, que constroi a janela public JFrame_simples() { super("janela teste"); //define o titulo da aplicação setSize(300,300); setVisible(true); } // Main: chama a janela iniciando a aplicação public static void main(String args[]){ JFrame_simples app = new JFrame_simples(); // Objeto app que decende da classe JFrame_simples instância o conteúdo do Método Teste pois ele é o construtor da classe. app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Seta o comportamento ao usuário fechar a janela /* HIDE_ON_CLOSE = Quando o usuário fechar o programa vai sumir, mas continuará em execução * DO_NOTHING_ON_CLOSE = Não fecha * DIPOSE_ON_CLOSE = Libera da memoria quando o usuario tentar fechar tanto o aplicativo quanto os componentes depois fica invissivel * EXIT_ON_CLOSE = fecha normal */ } // junin }Agora vamos testar: 1.Salve como JFrame_simples.java em C:/ 2.Abra o cmd, navegue até o c:/ e digite javac JFrame_simples.java Deu pau?! E agora José??? Identificação de erros é uma das, se não a, parte mais importante de se programar em Java. Você deve ter se assustado com o tamanho da msg de erro que apareceu, mas não se preocupe, essa é pequena tem StackTrace (msg de erro) que dão medo até nos mortos. Mas o importante normalmente é curtinho, nesse caso é só isso aqui O interpretador tá dizendo que não encontrou o simbolo JFrame, na linha Isso porque não importamos o swing no nosso código, para usar qualquer coisa do swing, temos que importar o swing. Então vamos lá:import javax.swing.*; public class JFrame_simples extends JFrame { // aplicativo // Metodo construtor, que constroi a janela public JFrame_simples() { super("janela teste"); //define o titulo da aplicação setSize(300,300); setVisible(true); } // Main: chama a janela iniciando a aplicação public static void main(String args[]){ JFrame_simples app = new JFrame_simples(); // Objeto app que decende da classe JFrame_simples instância o conteúdo do Método Teste pois ele é o construtor da classe. app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Seta o comportamento ao usuário fechar a janela /* HIDE_ON_CLOSE = Quando o usuário fechar o programa vai sumir, mas continuará em execução * DO_NOTHING_ON_CLOSE = Não fecha * DIPOSE_ON_CLOSE = Libera da memoria quando o usuario tentar fechar tanto o aplicativo quanto os componentes depois fica invissivel * EXIT_ON_CLOSE = fecha normal */ } }Compile denovo (javac) Digite java -cp c:; JFrame_simplesimport javax.swing.*; //Importa todos os pacotes gráficos do swing public class JFrame_centralizado extends JFrame { // aplicativo // Metodo construtor, que constroi a janela public JFrame_centralizado() { super("janela teste"); //define o titulo da aplicação setSize(300,300); // define o tamanho setVisible(true); /// define se a janela é vissivel setLocationRelativeTo(null); } // Main: chama a janela iniciando a aplicação public static void main(String args[]){ JFrame_centralizado app = new JFrame_centralizado(); // Objeto app que decende do metodo Teste instancia o conteudo do Metodo Teste app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Seta o comportamento ao usuário fechar a janela /* HIDE_ON_CLOSE = Quando o usuário fechar o programa vai sumir, mas continuará em execução * DO_NOTHING_ON_CLOSE = Não fecha * DIPOSE_ON_CLOSE = Libera da memoria quando o usuario tentar fechar tanto o aplicativo quanto os componentes depois fica invissivel * EXIT_ON_CLOSE = fecha normal */ } }Janela com tamanho fixoimport javax.swing.*; //Importa todos os pacotes gráficos do swing public class JFrame_fixo extends JFrame { // aplicativo // Metodo construtor, que constroi a janela public JFrame_fixo() { super("janela teste"); //define o titulo da aplicação setSize(300,300); // define o tamanho setVisible(true); /// define se a janela é vissivel setResizable(false); // define que o tamanho da janela não pode ser alterado } // Main: chama a janela iniciando a aplicação public static void main(String args[]){ JFrame_fixo app = new JFrame_fixo(); // Objeto app que decende do metodo Teste instancia o conteudo do Metodo Teste app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Seta o comportamento ao usuário fechar a janela /* HIDE_ON_CLOSE = Quando o usuário fechar o programa vai sumir, mas continuará em execução * DO_NOTHING_ON_CLOSE = Não fecha * DIPOSE_ON_CLOSE = Libera da memoria quando o usuario tentar fechar tanto o aplicativo quanto os componentes depois fica invissivel * EXIT_ON_CLOSE = fecha normal */ } }Janela centralizadaimport javax.swing.*; //Importa todos os pacotes gráficos do swing public class JFrame_centralizada extends JFrame { // Metodo construtor, que constroi a janela public JFrame_centralizada() { super("janela teste"); //define o titulo da aplicação setSize(300,300); // define o tamanho setVisible(true); // define se a janela é vissivel setLocationRelativeTo(null); // define que a janela vai abrir no centro da tela } // Main: chama a janela iniciando a aplicação public static void main(String args[]){ JFrame_centralizada app = new JFrame_centralizada(); // Objeto app que decende do metodo Teste instancia o conteudo do Metodo Teste app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Seta o comportamento ao usuário fechar a janela /* HIDE_ON_CLOSE = Quando o usuário fechar o programa vai sumir, mas continuará em execução * DO_NOTHING_ON_CLOSE = Não fecha * DIPOSE_ON_CLOSE = Libera da memoria quando o usuario tentar fechar tanto o aplicativo quanto os componentes depois fica invissivel * EXIT_ON_CLOSE = fecha normal */ } }Janela com cor de fundoimport javax.swing.*; //Importa todos os pacotes gráficos do swing import java.awt.*; // Importa o awt pois vamos usar objetos do tipo Container que está no pacote awt public class JFrame_background extends JFrame { // Metodo construtor, que constroi a janela public JFrame_background() { super("janela teste"); //define o titulo da aplicação Container janela = getContentPane(); // constroi o oobjetoo janela como sendo um container janela.setBackground(Color.black); // seta a propriedade do container janela /* janela.setBackground(new Color(255,150,150)); // seta cor personalizada em rgb */ setSize(300,300); // define o tamanho setVisible(true); // define se a janela é vissivel setLocationRelativeTo(null); // define que a janela vai abrir no centro da tela } // Main: chama a janela iniciando a aplicação public static void main(String args[]){ JFrame_background app = new JFrame_background(); // Objeto app que decende do metodo Teste instancia o conteudo do Metodo Teste app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Seta o comportamento ao usuário fechar a janela /* HIDE_ON_CLOSE = Quando o usuário fechar o programa vai sumir, mas continuará em execução * DO_NOTHING_ON_CLOSE = Não fecha * DIPOSE_ON_CLOSE = Libera da memoria quando o usuario tentar fechar tanto o aplicativo quanto os componentes depois fica invissivel * EXIT_ON_CLOSE = fecha normal */ } }Janela com icone personalizadoimport javax.swing.*; //Importa todos os pacotes gráficos do swing import java.awt.*; // Importa o awt pois vamos usar objetos do tipo Container que está no pacote awt public class JFrame_icone extends JFrame { // Metodo construtor, que constroi a janela public JFrame_icone() { super("janela teste"); //define o titulo da aplicação Container janela = getContentPane(); // constroi o oobjetoo janela como sendo um container janela.setBackground(Color.black); // seta a propriedade do container janela /* janela.setBackground(new Color(255,150,150)); // seta cor personalizada em rgb */ ImageIcon icone = new ImageIcon("img/icone.png"); // seta o icone a ser usado setIconImage(icone.getImage()); setSize(300,300); // define o tamanho setVisible(true); // define se a janela é vissivel setLocationRelativeTo(null); // define que a janela vai abrir no centro da tela } // Main: chama a janela iniciando a aplicação public static void main(String args[]){ JFrame_icone app = new JFrame_icone(); // Objeto app que decende do metodo Teste instancia o conteudo do Metodo Teste app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Seta o comportamento ao usuário fechar a janela /* HIDE_ON_CLOSE = Quando o usuário fechar o programa vai sumir, mas continuará em execução * DO_NOTHING_ON_CLOSE = Não fecha * DIPOSE_ON_CLOSE = Libera da memoria quando o usuario tentar fechar tanto o aplicativo quanto os componentes depois fica invissivel * EXIT_ON_CLOSE = fecha normal */ } }Bom por enquanto é isso pessoal, quem quiser pode baixar os exemplos em anexo
Java.rar
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.