Java é uma ótima linguagem orientada objeto para criar aplicações que fazem utilização de interface gráfica, seja em desktop ou web.
Neste artigo será criado um aplicativo simples que tem a função de ser uma calculadora com uma interface gráfica utilizando Swing.
Pré-requisitos
Para criar a aplicação é necessário ter instalado em seu computador o seguinte programa.
- NetBeans – É necessário que se tenha instalado uma IDE para facilitar o desenvolvimento do projeto. Para o artigo foi escolhido o NetBeans, pois acredito ser mais fácil criar telas utilizando Swing com o mesmo.
Criando um projeto
Para criar um projeto no NetBeans é bem simples, basta clicar em: Arquivo > Novo Projeto
Após clicar no item Novo Projeto, será dada a opção para escolher o tipo de projeto escolha:
- Categorias: Java
- Projetos: Aplicação Java
Após fazer as escolhas corretas clique em Próximo para ir a nova tela.
Na tela a seguir é necessário informar o nome do projeto, neste caso criei o projeto com nome de CalculadoraSwing.
Após criar o projeto é necessário criar uma classe que será responsável por realizar todos os cálculos que serão fornecidos pelo usuário através da tela, foi criada classe Calculos.java para realizar essa função.
Para criar uma classe no NetBeans, basta clicar no projeto com o botão direito e escolher a opção: Novo > Classe Java
Abaixo é possível ver o conteúdo da classe Calculo.java
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package calculadoraswing;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author Robson Fernando Gomes
*/
public class Calculos {
public static void main(String args[])
{
Calculos c=new Calculos();
System.out.println(">>>>"+c.calculadora("5/5"));
}
public String calculadora(String expressao) {
String resultado;
List<Double> listaNumeros = new ArrayList<Double>();
List<Character> listaOperadores = new ArrayList<Character>();
listaNumeros = obterNumeros(expressao);
listaOperadores = obterOperadores(expressao);
resultado = calcularValor(listaNumeros, listaOperadores);
return resultado;
}
private String calcularValor(List<Double> listaNumeros,
List<Character> listaOperadores) {
String resultado = "";
double total = 0.0;
int j=0;
for (int i = 0; i < listaNumeros.size()-1; i++) {
if ( total==0.0) {
double numero1 = listaNumeros.get(i).doubleValue();
double numero2 = listaNumeros.get(i + 1).doubleValue();
char operador = listaOperadores.get(i).charValue();
total = executarOperacao(numero1, operador, numero2);
}
else if (total>0.0) {
double numero2 = listaNumeros.get(i).doubleValue();
char operador = listaOperadores.get(j).charValue();
total = executarOperacao(total, operador, numero2);
j++;
}
}
resultado = ""+total;
return resultado;
}
private double executarOperacao(double numero1, char operador, double numero2) {
double resultado = 0.0;
if (operador == '+') {
resultado = numero1 + numero2;
} else if (operador == '-') {
resultado = numero1 - numero2;
} else if (operador == '/') {
resultado = numero1 / numero2;
} else if (operador == '*') {
resultado = numero1 * numero2;
}
return resultado;
}
private List<Double> obterNumeros(String expressao) {
List<Double> listaNumeros = new ArrayList<Double>();
String numeroEmString = "";
for (int i = 0; i < expressao.length(); i++) {
if (isOperador(expressao.charAt(i))) {
Double numero = Double.valueOf(numeroEmString);
listaNumeros.add(numero);
numeroEmString = "";
} else {
numeroEmString = numeroEmString.concat("" + expressao.charAt(i));
}
}
if(!numeroEmString.isEmpty())
{
Double numero = Double.valueOf(numeroEmString);
listaNumeros.add(numero);
}
return listaNumeros;
}
private List<Character> obterOperadores(String expressao) {
List<Character> listaOperadores = new ArrayList<Character>();
for (int i = 0; i < expressao.length(); i++) {
if (isOperador(expressao.charAt(i))) {
listaOperadores.add(new Character(expressao.charAt(i)));
}
}
return listaOperadores;
}
private boolean isOperador(char caracter) {
boolean isOperador = false;
if (caracter == '-' || caracter == '+' || caracter == '/' || caracter == '*') {
isOperador = true;
}
return isOperador;
}
}
O próximo passo é criar a classe responsável pela interface, será criada uma classe chamada TelaCalculadora.class que terá como classe mãe a classe JFrame, que e responsável pela criação de uma tela em Swing.
Para criar uma classe do tipo JFrame, basta clicar no pacote no qual será criads e clicar em: Novo > Form JFrame.
Abaixo é possível ver a tela recém-criada pronta para edição.
Para modificar a tela é necessário clicar nos itens da aba paleta e jogar na tela em si.
Inicialmente é necessário adicionar um Painel a nossa tela basta clicar no mesmo na aba Paleta e arrastar até a tela do programa.
Agora basta direcionar o painel dentro da tela. O próximo passo é adicionar um objeto do tipo Painel de Texto, como é possível ver abaixo:
Agora altere o nome da variável do item Painel de texto que fora adicionado para visorCalculadora. Para alterar o nome da variável basta clicar com o botão direito em cima do item que se deseja alterar e escolher a opção Alterar Nome de Variável..., abaixo é possível o momento em que se está alterando o nome da variável do item.
Após adicionar o visor, é necessário adicionar os botões Pra adicionar o botão escolha o item Botão na aba Paleta.
Agora que o botão foi adicionado é necessário alterar o nome da variável do mesmo, assim como foi feito no item referente ao visor, altere o nome da variável para botaoCE.
Agora também é necessário alterar o texto do botão, Para alterar o texto do item, clique com o botão direito sobre ele e escolha a opção Editar Texto.
Essa primeira tecla será o botão CE, que será utilizado para limpar o visor.
Agora é necessário atribuir uma ação ao botão para quando o mesmo for clicado. Para adicionar um evento a um determinado item basta clicar com o botão direito sobre o item e escolher as opções: Eventos > Mouse > mouseClicked.
Logo que for adicionada essa ação, a tela será direcionada para código fonte.
Para voltar à tela de edição gráfica basta clicar no item Projeto que fica ao lado do item selecionado Código-Fonte.
Agora será necessário seguir esse processo para todos os botões da calculadora.
Abaixo é possível ver como ficará a tela neste exemplo:
O próximo passo é fazer com que seja exibido no visor o valor referente à tecla pressionada. Para programar os botões é necessário editar o código-fonte da tela, para isso é preciso clicar no botão Código-Fonte.
Um exemplo de código que faz alteração no visor quando algum botão é apertado pode ser visto abaixo:
private void botao3MouseClicked(java.awt.event.MouseEvent evt) {
String valor = visorCalculador.getText();
visorCalculador.setText(valor + "3");
}
O trecho de código acima funciona da seguinte maneira. Quando o método acima é chamado, é pego o valor já existente no visor através do método getText() contido na variável visorCalculador, logo após é concatenado o número 3, esse processo é necessário em todos os botões.
Abaixo é possível ver o trecho código-fonte da classe TelaCalculadora.
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package calculadoraswing;
/**
*
* @author mago
*/
public class TelaCalculadora extends javax.swing.JFrame {
/**
* Creates new form TelaCalculadora
*/
public TelaCalculadora() {
initComponents();
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jScrollPane1 = new javax.swing.JScrollPane();
visorCalculador = new javax.swing.JTextPane();
botaoCE = new javax.swing.JButton();
botao7 = new javax.swing.JButton();
botao8 = new javax.swing.JButton();
botao9 = new javax.swing.JButton();
botao5 = new javax.swing.JButton();
botao6 = new javax.swing.JButton();
botao4 = new javax.swing.JButton();
botao1 = new javax.swing.JButton();
botao2 = new javax.swing.JButton();
botao3 = new javax.swing.JButton();
botao0 = new javax.swing.JButton();
botaoVezes = new javax.swing.JButton();
botaoDiv = new javax.swing.JButton();
botaoMenos = new javax.swing.JButton();
botaoMais = new javax.swing.JButton();
botaoIgual = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jScrollPane1.setViewportView(visorCalculador);
botaoCE.setText("CE");
botaoCE.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
botaoCEMouseClicked(evt);
}
});
botao7.setFont(new java.awt.Font("Ubuntu", 0, 24)); // NOI18N
botao7.setText("7");
botao7.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
botao7MouseClicked(evt);
}
});
botao8.setFont(new java.awt.Font("Ubuntu", 0, 24)); // NOI18N
botao8.setText("8");
botao8.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
botao8MouseClicked(evt);
}
});
botao9.setFont(new java.awt.Font("Ubuntu", 0, 24)); // NOI18N
botao9.setText("9");
botao9.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
botao9MouseClicked(evt);
}
});
botao5.setFont(new java.awt.Font("Ubuntu", 0, 24)); // NOI18N
botao5.setText("5");
botao5.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
botao5MouseClicked(evt);
}
});
botao6.setFont(new java.awt.Font("Ubuntu", 0, 24)); // NOI18N
botao6.setText("6");
botao6.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
botao6MouseClicked(evt);
}
});
botao4.setFont(new java.awt.Font("Ubuntu", 0, 24)); // NOI18N
botao4.setText("4");
botao4.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
botao4MouseClicked(evt);
}
});
botao1.setFont(new java.awt.Font("Ubuntu", 0, 24)); // NOI18N
botao1.setText("1");
botao1.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
botao1MouseClicked(evt);
}
});
botao2.setFont(new java.awt.Font("Ubuntu", 0, 24)); // NOI18N
botao2.setText("2");
botao2.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
botao2MouseClicked(evt);
}
});
botao3.setFont(new java.awt.Font("Ubuntu", 0, 24)); // NOI18N
botao3.setText("3");
botao3.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
botao3MouseClicked(evt);
}
});
botao0.setFont(new java.awt.Font("Ubuntu", 0, 24)); // NOI18N
botao0.setText("0");
botao0.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
botao0MouseClicked(evt);
}
});
botaoVezes.setFont(new java.awt.Font("Ubuntu", 0, 24)); // NOI18N
botaoVezes.setText("*");
botaoVezes.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
botaoVezesMouseClicked(evt);
}
});
botaoDiv.setFont(new java.awt.Font("Ubuntu", 0, 24)); // NOI18N
botaoDiv.setText("/");
botaoDiv.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
botaoDivMouseClicked(evt);
}
});
botaoMenos.setFont(new java.awt.Font("Ubuntu", 0, 24)); // NOI18N
botaoMenos.setText("-");
botaoMenos.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
botaoMenosMouseClicked(evt);
}
});
botaoMais.setFont(new java.awt.Font("Ubuntu", 0, 24)); // NOI18N
botaoMais.setText("+");
botaoMais.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
botaoMaisMouseClicked(evt);
}
});
botaoIgual.setText("=");
botaoIgual.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
botaoIgualMouseClicked(evt);
}
});
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup
(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup
(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent
(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 218,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, Short.MAX_VALUE))
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent
(botaoCE, javax.swing.GroupLayout.Alignment.LEADING,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(26, 26, 26)
.addComponent(botao0, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGroup(javax.swing.GroupLayout.Alignment.LEADING,
jPanel1Layout.createSequentialGroup()
.addComponent(botao1, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap
(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(botao2, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGroup(javax.swing.GroupLayout.Alignment.LEADING,
jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(botao7,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(botao4,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(botao5,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(botao8,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(botao3, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(botaoMais,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addComponent(botaoIgual, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(botao6,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(botaoMenos,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
.addComponent(botaoVezes,
javax.swing.GroupLayout.Alignment.TRAILING,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel1Layout.createSequentialGroup()
.addComponent(botao9,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(botaoDiv,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)))
.addGap(2, 2, 2)))))
.addContainerGap())
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(44, 44, 44)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(24, 24, 24)
.addGroup(jPanel1Layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(botaoVezes, javax.swing.GroupLayout.PREFERRED_SIZE, 33,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(botaoCE, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.BASELINE, false)
.addComponent(botao7, javax.swing.GroupLayout.PREFERRED_SIZE, 0,
Short.MAX_VALUE)
.addComponent(botao8, javax.swing.GroupLayout.PREFERRED_SIZE, 0,
Short.MAX_VALUE)
.addComponent(botao9, javax.swing.GroupLayout.PREFERRED_SIZE, 33,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(botaoDiv, javax.swing.GroupLayout.PREFERRED_SIZE, 33,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(jPanel1Layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(botao5, javax.swing.GroupLayout.PREFERRED_SIZE, 0,
Short.MAX_VALUE)
.addComponent(botao6, javax.swing.GroupLayout.PREFERRED_SIZE, 0,
Short.MAX_VALUE)
.addComponent(botao4, javax.swing.GroupLayout.PREFERRED_SIZE, 0,
Short.MAX_VALUE)
.addComponent(botaoMenos, javax.swing.GroupLayout.PREFERRED_SIZE, 33,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(botao1, javax.swing.GroupLayout.PREFERRED_SIZE, 33,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(botao2, javax.swing.GroupLayout.PREFERRED_SIZE, 33,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(botao3, javax.swing.GroupLayout.PREFERRED_SIZE, 33,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(botaoMais, javax.swing.GroupLayout.PREFERRED_SIZE, 33,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(botao0, javax.swing.GroupLayout.PREFERRED_SIZE, 33,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(botaoIgual, javax.swing.GroupLayout.PREFERRED_SIZE, 33,
javax.swing.GroupLayout.PREFERRED_SIZE)))
);
jPanel1Layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[]
{botao7, botao8, botao9});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(31, Short.MAX_VALUE))
);
pack();
}// </editor-fold>
private void botaoCEMouseClicked(java.awt.event.MouseEvent evt)
{
visorCalculador.setText("");
}
private void botaoVezesMouseClicked(java.awt.event.MouseEvent evt)
{
String valor = visorCalculador.getText();
visorCalculador.setText(valor + "*");
}
private void botao7MouseClicked(java.awt.event.MouseEvent evt)
{
String valor = visorCalculador.getText();
visorCalculador.setText(valor + "7");
}
private void botao8MouseClicked(java.awt.event.MouseEvent evt)
{
String valor = visorCalculador.getText();
visorCalculador.setText(valor + "8"); // TODO add your handling code here:
}
private void botao9MouseClicked(java.awt.event.MouseEvent evt)
{
String valor = visorCalculador.getText();
visorCalculador.setText(valor + "9"); // TODO add your handling code here:
}
private void botaoDivMouseClicked(java.awt.event.MouseEvent evt)
{
String valor = visorCalculador.getText();
visorCalculador.setText(valor + "/"); // TODO add your handling code here:
}
private void botao4MouseClicked(java.awt.event.MouseEvent evt)
{
String valor = visorCalculador.getText();
visorCalculador.setText(valor + "4"); // TODO add your handling code here:
}
private void botao5MouseClicked(java.awt.event.MouseEvent evt)
{
String valor = visorCalculador.getText();
visorCalculador.setText(valor + "5"); // TODO add your handling code here:
}
private void botao6MouseClicked(java.awt.event.MouseEvent evt)
{
String valor = visorCalculador.getText();
visorCalculador.setText(valor + "6"); // TODO add your handling code here:
}
private void botaoMenosMouseClicked(java.awt.event.MouseEvent evt)
{
String valor = visorCalculador.getText();
visorCalculador.setText(valor + "-"); // TODO add your handling code here:
}
private void botao1MouseClicked(java.awt.event.MouseEvent evt) {
String valor = visorCalculador.getText();
visorCalculador.setText(valor + "1"); // TODO add your handling code here:
}
private void botao2MouseClicked(java.awt.event.MouseEvent evt) {
String valor = visorCalculador.getText();
visorCalculador.setText(valor + "2"); // TODO add your handling code here:
}
private void botao3MouseClicked(java.awt.event.MouseEvent evt) {
String valor = visorCalculador.getText();
visorCalculador.setText(valor + "3"); // TODO add your handling code here:
}
private void botaoMaisMouseClicked(java.awt.event.MouseEvent evt) {
String valor = visorCalculador.getText();
visorCalculador.setText(valor + "+"); // TODO add your handling code here:
}
private void botao0MouseClicked(java.awt.event.MouseEvent evt) {
String valor = visorCalculador.getText();
visorCalculador.setText(valor + "0"); // TODO add your handling code here:
}
private void botaoIgualMouseClicked(java.awt.event.MouseEvent evt) {
String valor = visorCalculador.getText();
System.out.println(">>>"+valor);
Calculos calculos = new Calculos();
String resultado = calculos.calculadora(valor);
visorCalculador.setText(resultado);
// TODO add your handling code here:
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code
(optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look
and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/
plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info :
javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(TelaCalculadora.class.getName()).log(
java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(TelaCalculadora.class.getName()).log(
java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(TelaCalculadora.class.getName()).log(
java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(TelaCalculadora.class.getName()).log(
java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new TelaCalculadora().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton botao0;
private javax.swing.JButton botao1;
private javax.swing.JButton botao2;
private javax.swing.JButton botao3;
private javax.swing.JButton botao4;
private javax.swing.JButton botao5;
private javax.swing.JButton botao6;
private javax.swing.JButton botao7;
private javax.swing.JButton botao8;
private javax.swing.JButton botao9;
private javax.swing.JButton botaoCE;
private javax.swing.JButton botaoDiv;
private javax.swing.JButton botaoIgual;
private javax.swing.JButton botaoMais;
private javax.swing.JButton botaoMenos;
private javax.swing.JButton botaoVezes;
private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTextPane visorCalculador;
// End of variables declaration
}
Conclusão
Como foi possível ver ao longo do artigo, a construção de aplicativos utilizando interface gráfica Swing é bem simples quando se utiliza o IDE NetBeans. Uma boa interface gráfica faz toda diferença em qualquer programa, e a utilização de Swing para criação desta interface pode vir a ser muito útil.
- Todos os Cursos Java: Torne-se um programador Java completo, cursos sobre as mais ferramentas e frameworks do universo Java. Aprenda a desenvolver sites e web services com JSF, Jersey, Hibernate e mais.