Você está na página 1de 13

Introdução

Muitas das vezes, principalmente quando estamos desenvolvendo oficialmente. Necessitamos


desenvolver uma interface gráfica, botões com animações e estilos, janelas estilizadas e
outros componentes gráficos, que vem em uma biblioteca gráfica ou API. API é uma sigla
para Aplication progamming Interface, ou interface de programação da aplicação.
O propósito do pacote Swing é de superar algumas limitações do pacote AWT, por exemplo,
o AWT utilizava rotinas do sistema operacional para manter seus componentes, entretanto,
nem todos componentes estavam disponíveis em todas as plataformas. No objetivo de
amenizar a situação, a Sun Microsystems incluiu no toolkit apenas componentes básicos,
ignorando tabelas, árvores e etc, o que resultou em outros problemas, pois para aplicações
mais complexas asolução era implementar componentes próprios devido aos poucos que
eram disponibilizados na AWT.

A partir da versão do Java 1.2, a Sun incluiu o pacote Swing como evolução do pacote AWT.
No Swing foram incluídos componentes próprios que não dependiam de rotinas do sistema
operacional, além de oferecer uma interface gráfica mais evoluida e com maiores efeitos. Ao
contrário do AWT, o Swing emula seus próprios componentes (lightweight), sendo assim, a
renderização dos componentes é feita pelo java. O Swing também supriu as
incompatibilidades, possibilitando utilizar os mesmos componentes do AWT em qualquer
plataforma, independente das possíveis implementações nativas do sistema operacional. A
família de componentes Swing possui as seguintes características:
 Componentes Swing: São uma nova geração de componentes com vasta capacidade
de configurações e funcionalidades.
 Suporte para múltiplos Pluggable Look and Feel: Possibilita que aplicações Java
utilizarem diferentes aparências visuais que podem ou não serem adaptadas ao
ambiente de execução utilizado.
 Acessibilidade: Possibilita o uso integrado de tecnologias para auxílio de portadores
de necessidades especiais através de monitores e teclados adaptados.
 Java 2D: É um pacote de classes para desenho 2D de gráficos, texto e imagens de alta
qualidade.
 Drag and Drop: Este tipo de suporte consiste na capacidade de arrastar e soltar
componentes entre aplicações nativas.

Swings possuem o prefixo J em seus nomes, diferenciando-os dos componentes AWT. A


classe JComponent representa as características comuns de todos os componentes, ou
seja, de todos aqueles objetos que possuem uma representação gráfica, que podem
interagir com o usuário e que possuem uma aparência e comportamento.

A SMA (Separable Model Architecture) é a estrutura interna dos componentes Swing,


semelhante ao padrão MVC (Model-View-Controller). As funcionalidades de um
componente do MVC são divididas da seguinte forma:

2
 Model – administra dados associados ao componenente;
 View – é responsável pela visualização e aparência do componente;
 Controller – gerencia o funcionamento e visualização do componente que integram
uma camada de código separada do modelo utilizado para armazenar seus dados.
Todavia, no SMA a funcionalidade e visualização dos componentes integram uma camada de
código separada do modelo utilizado para armazenar seus dados. Existe uma camada
responsável pela visualização e funcionalidade dos componentes, cuja função é permitir que
os componentes exibam uma apresentação diferente em cada plataforma, possibilitando
algumas personalizações inclusive na forma de controle dos componentes. Esta camada é
vinculada à JVM (Java Virtual Machine) e é conhecida como Puggable Look and Feel
(PL&F).

O Swing fornece componentes de mais alto nível, possibilitando assim uma melhor


compatibilidade entre os vários sistemas onde o Java executa. Ao contrário da
AWT, Swing não contém uma única linha de código nativo, e permite que as aplicações
tenham diferentes tipos de visuais (skins), os chamados “Look and Feel”

3
Conclusão
Com base nos estudos realizados sobre Swing, nota-se que o Swing é uma API de alto nível
e, consequentemente, possui maior abstração e menor aproximação das APIs do
sistema operacional. Swing é mais completa e independente do sistema operacional utilizado,
as aplicações desenvolvidas com o Swing possuem interfaces semelhantes. Tendo em vista os
componentes Swing destacados neste artigo, percebe-se uma praticidade na implementação
dos mesmos, permitindo que muitos sejam combinados para trazer diferentes possibilidades
de resultados esperados.

4
Referencias bibliografica

https://pt.wikiversity.org/wiki/Introdu%C3%A7%C3%A3o_ao_Java/Introdu
%C3%A7%C3%A3o_a_biblioteca_Swing

https://www.lncc.br/~rogerio/poo/04a%20-%20Programacao_GUI.pdf

5
Calculadora programa

package javax.swing;

public class Jframe {

package calculadora;

import javax.swing.*;

import java.awt.event.*;

public class Calculadora extends JFrame {

private final JButton numero1;

private final JButton numero2;

private final JButton numero3;

private final JButton numero4;

private final JButton numero5;

private final JButton numero6;

private final JButton numero7;

private final JButton numero8;

private final JButton numero9;

private final JButton numero0;

private final JButton numeroP;

private final JButton dividir;

private final JButton multiplicar;

private final JButton subtrair;

private final JButton somar;

private final JButton igual;

private JTextField display;

private int leitura;

6
private int memoria;

private char operacao;

public Calculadora() {

this.setTitle("Exemplo Botão Somar");

this.setBounds(500, 100, 292, 450);

this.setDefaultCloseOperation(EXIT_ON_CLOSE);

this.getContentPane().setLayout(null);

leitura = 0;

memoria = 0;

display = new JTextField();

display.setBounds(0, 0, 300, 100);

this.add(display);

numero7 = new JButton();

numero7.setText("7");

numero7.setBounds(0, 120, 65, 65);

this.add(numero7);

numero4 = new JButton();

numero4.setText("4");

numero4.setBounds(0, 190, 65, 65);

this.add(numero4);

numero1 = new JButton();

numero1.setText("1");

numero1.setBounds(0, 260, 65, 65);

this.add(numero1);

numero0 = new JButton();

numero0.setText("0");

7
numero0.setBounds(0, 330, 65, 65);

this.add(numero0);

numero8 = new JButton();

numero8.setText("8");

numero8.setBounds(70, 120, 65, 65);

this.add(numero8);

numero5 = new JButton();

numero5.setText("5");

numero5.setBounds(70, 190, 65, 65);

this.add(numero5);

numero2 = new JButton();

numero2.setText("2");

numero2.setBounds(70, 260, 65, 65);

this.add(numero2);

numeroP = new JButton();

numeroP.setText(".");

numeroP.setBounds(70, 330, 65, 65);

this.add(numeroP);

numero9 = new JButton();

numero9.setText("9");

numero9.setBounds(140, 120, 65, 65);

this.add(numero9);

numero6 = new JButton();

numero6.setText("6");

numero6.setBounds(140, 190, 65, 65);

this.add(numero6);

8
numero3 = new JButton();

numero3.setText("3");

numero3.setBounds(140, 260, 65, 65);

this.add(numero3);

somar = new JButton();

somar.setText("+");

somar.setBounds(140, 330, 65, 65);

this.add(somar);

dividir = new JButton();

dividir.setText("/");

dividir.setBounds(210, 120, 65, 65);

this.add(dividir);

multiplicar = new JButton();

multiplicar.setText("X");

multiplicar.setBounds(210, 190, 65, 65);

this.add(multiplicar);

subtrair = new JButton();

subtrair.setText("-");

subtrair.setBounds(210, 260, 65, 65);

this.add(subtrair);

igual = new JButton();

igual.setText("=");

igual.setBounds(210, 330, 65, 65);

this.add(igual);

numero1.addActionListener((ActionEvent evt) -> {

leitura *= 10;

9
leitura += 1;

display.setText(display.getText() + "1");

});

numero2.addActionListener((ActionEvent evt) -> {

leitura *= 10;

leitura += 2;

display.setText(display.getText() + "2");

});

numero3.addActionListener((ActionEvent evt) -> {

leitura *= 10;

leitura += 3;

display.setText(display.getText() + "3");

});

numero4.addActionListener((ActionEvent evt) -> {

leitura *= 10;

leitura += 4;

display.setText(display.getText() + "4");

});

numero5.addActionListener((ActionEvent evt) -> {

leitura *= 10;

leitura += 5;

display.setText(display.getText() + "5");

});

numero6.addActionListener((ActionEvent evt) -> {

leitura *= 10;

leitura += 6;

display.setText(display.getText() + "6");

});

10
numero7.addActionListener((ActionEvent evt) -> {

leitura *= 10;

leitura += 7;

display.setText(display.getText() + "7");

});

numero8.addActionListener((ActionEvent evt) -> {

leitura *= 10;

leitura += 8;

display.setText(display.getText() + "8");

});

numero9.addActionListener((ActionEvent evt) -> {

leitura *= 10;

leitura += 3;

display.setText(display.getText() + "9");

});

numero0.addActionListener((ActionEvent evt) -> {

leitura *= 10;

leitura += 0;

display.setText(display.getText() + "0");

});

somar.addActionListener((ActionEvent evt) -> {

operacao = '+';

memoria += leitura;

leitura = 0;

display.setText(memoria + " + ");

});

subtrair.addActionListener((ActionEvent evt) -> {

11
operacao = '-';

memoria += leitura;

leitura = 0;

display.setText(memoria + " - ");

});

multiplicar.addActionListener((ActionEvent evt) -> {

operacao = 'X';

memoria += leitura;

leitura = 0;

display.setText(memoria + " X ");

});

dividir.addActionListener((ActionEvent evt) -> {

operacao = '/';

memoria += leitura;

leitura = 0;

display.setText(memoria + " / ");

});

igual.addActionListener((ActionEvent evt) -> {

switch (operacao) {

case '.': {

memoria = memoria + '.';

break;

case '+': {

memoria += leitura;

break;

case '-': {

memoria -= leitura;

12
break;

case 'X': {

memoria *= leitura;

break;

case '/': {

memoria /= leitura;

break;

leitura = 0;

display.setText("" + memoria);

});

public static void main(String[] args) {

Calculadora exemplo = new Calculadora();

exemplo.setVisible(true);

13

Você também pode gostar