boa tarde alguem poderia dar uma analisada neste codigo por que ele ta dando erro
[code][color=red][/color]
package p1;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.ScrollPaneConstants;
import javax.swing.SwingConstants;
import javax.swing.border.LineBorder;
public class Calculadora extends FormPadrao implements KeyListener{
private JButton botao1, botao2, botao3, botao4, botao5, botao6, botao7, botao8,
botao9, botao0, botaoC, botaoCE, botaoDiv, botaoMultip, botaoMenos,
botaoMais, botaoVirgula, botaoTotal, botaoPerc, botaoBackspace;
private JTextArea roloPapel;
private JLabel visor, keyCodigo;
private JScrollPane scroll;
private double soma = 0;
private String valor = “”, operador = “”, valorAnterior = “”;
private Container container;
private GridBagLayout layout;
private GridBagConstraints constraints;
private JRadioButton botao2dig, botao4dig, botao6dig;
private ButtonGroup botaoDecimais;
private int casasDecimais = 2;
// Classe de tratamento e eventos de A??o ==========================
private class trataEventosAcao implements ActionListener {
public void actionPerformed ( ActionEvent event){
if (event.getSource() == botaoC) teclouC();
else if ( event.getSource() == botaoCE) teclouCE();
else if ( event.getSource() == botaoPerc) teclouP();
else if ( event.getSource() == botaoVirgula) teclouVirgula();
else if ( event.getSource() == botaoBackspace) teclouBackspace();
else if ( event.getSource() == botao1) teclouNumeros("1");
else if ( event.getSource() == botao2) teclouNumeros("2");
else if ( event.getSource() == botao3) teclouNumeros("3");
else if ( event.getSource() == botao4) teclouNumeros("4");
else if ( event.getSource() == botao5) teclouNumeros("5");
else if ( event.getSource() == botao6) teclouNumeros("6");
else if ( event.getSource() == botao7) teclouNumeros("7");
else if ( event.getSource() == botao8) teclouNumeros("8");
else if ( event.getSource() == botao9) teclouNumeros("9");
else if ( event.getSource() == botao0) teclouNumeros("0");
else if ( event.getSource() == botaoMais) teclouMais();
else if ( event.getSource() == botaoMenos) teclouMenos();
else if ( event.getSource() == botaoDiv) teclouDiv();
else if ( event.getSource() == botaoMultip) teclouMultip();
else if ( event.getSource() == botaoTotal) teclouEnter();
}
}
// Classe de tratamento de eventos Focus (nenhum componente vai recebe o focu alem do visor,
// mas deixo o codigo abaixo pra efeito didatico
private class trataEventosFocus implements FocusListener {
// == qdo os campos texto ganham focus
public void focusGained(FocusEvent event)
{//=============
}
// == qdo os campos texto perdem o focus
public void focusLost(FocusEvent event)
{ //=============
}
}
// Classe de tratamento de eventos Focus (nenhum componente vai recebe o focu alem do visor,
// mas deixo o codigo abaixo pra efeito didatico
private class trataEventosRadio implements ItemListener {
// == qdo os campos texto ganham focus
public void itemStateChanged(ItemEvent event){
if (event.getSource() == botao2dig ){
//Mudou pra dois digitos decimais
casasDecimais = 2;
}
if (event.getSource() == botao4dig ){
//Mudou pra quatro digitos decimais
casasDecimais = 4;
}
if (event.getSource() == botao6dig ){
//Mudou pra seis digitos decimais
casasDecimais = 6;
}
}
}
// Tratamento de eventos de teclado
public void keyPressed(KeyEvent e){
// VK_ESCAPE ? uma constante est?tica. Tanto faz usar e ou KeyEvent
if(e.getKeyCode() == e.VK_ESCAPE){
// passando this e nao null, mensagem aparece centro da janela
int selectedOption = JOptionPane.showConfirmDialog(this,“Deseja Sair Realmente?”, “Aten??o”, JOptionPane.YES_NO_OPTION);
if(selectedOption == JOptionPane.YES_OPTION){
dispose();
System.exit(0);
}
}
if (e.getKeyCode() == 67)teclouC();
if (e.getKeyCode() == 69)teclouCE();
if (e.getKeyCode() == 8) teclouBackspace();
if (e.getKeyCode() == 110) teclouVirgula();
if (((e.getKeyCode() >= e.VK_0 ) && (e.getKeyCode() <= e.VK_9 )) ||
((e.getKeyCode() >= e.VK_NUMPAD0 ) && (e.getKeyCode() <= e.VK_NUMPAD9 )))
teclouNumeros(""+e.getKeyChar());
if ((e.getKeyCode() == 61)||(e.getKeyCode() == 107)) teclouMais();
if ((e.getKeyCode() == 45)||(e.getKeyCode() == 109)) teclouMenos();
if ((e.getKeyCode() == 59)||(e.getKeyCode() == 111)) teclouDiv();
if (e.getKeyCode() == 106) teclouMultip();
if (e.getKeyCode() == 80) teclouP();
if (e.getKeyCode() == 10) teclouEnter();
}
private void dispose() {
// TODO Auto-generated method stub
}
private void dispose() {
// TODO Auto-generated method stub
}
private void dispose() {
// TODO Auto-generated method stub
}
public void keyReleased(KeyEvent e) {
//visor.setText("Tecla liberada");
}
public void keyTyped(KeyEvent e) {
//visor.setText(""+e.getKeyCode());
}
// Funcoes logo abaixo sao usadas nos eventos de botoes e teclado
// Teclou “C” limpa so valor digitado
public void teclouC (){
valor = “0”;
visor.setText(formatStrNumerica(valor,casasDecimais));
}
// Teclou “E” limpa tudo
public void teclouCE (){
valor = “0”;
soma = 0;
visor.setText(formatStrNumerica(valor,casasDecimais));
roloPapel.append(alinhaStringDir("-------------------------------"+"\n"));
roloPapel.append(alinhaStringDir(" “+”\n"));
}
// Percentagem teclou “P” calcula o percentual
public void teclouP (){
roloPapel.append(alinhaStringDir(formatStrNumerica(valor,casasDecimais) +" %"+"\n"));
roloPapel.append(alinhaStringDir("-------------------------------"+"\n"));
if (operador == “*”) soma = soma * (Double.parseDouble(valor)/100);
else if (operador == “/”) soma = soma / (Double.parseDouble(valor)/100);
roloPapel.append(alinhaStringDir(formatStrNumerica(""+soma, casasDecimais) +" ="+"\n"));
roloPapel.append(alinhaStringDir(" “+”\n"));
visor.setText(formatStrNumerica(""+soma,casasDecimais));
valorAnterior = “”+soma;
soma = 0;
valor="";
}
// Teclou “,” V?rgula decimal
public void teclouVirgula (){
if (valor.lastIndexOf(".")== -1 ) valor = valor + “.”;
visor.setText(valor);
}
// Teclou Backspace remove ultimo carctere do valor
public void teclouBackspace(){
if (valor.length() == 1) valor = “0”;
else valor = valor.substring(0, valor.length()-1);
visor.setText(valor);
}
//Pega somente os Numeros digitados
public void teclouNumeros(String s){
if (valor.length() <= 14){
if (valor == “0”) valor = “”;
valor = valor+s;
visor.setText(valor);
}
}
// Adi??o teclou “+”
public void teclouMais (){
if (valor == “” )valor = valorAnterior;
roloPapel.append(alinhaStringDir(formatStrNumerica(valor,casasDecimais) +" +"+"\n"));
soma = soma + Double.parseDouble(valor);
visor.setText(formatStrNumerica(""+soma,casasDecimais));
valorAnterior = valor;
valor="";
operador="+";
}
// Subtra??o teclou “-”
public void teclouMenos(){
if (valor == “” )valor = valorAnterior;
roloPapel.append(alinhaStringDir(formatStrNumerica(valor,casasDecimais) +" -"+"\n"));
soma = soma - Double.parseDouble(valor);
visor.setText(formatStrNumerica(""+soma,casasDecimais));
valorAnterior = valor;
valor="";
operador="-";
}
// Divis?o teclou “/” ou “:”
public void teclouDiv (){
if (valor == “” )valor = valorAnterior;
roloPapel.append(alinhaStringDir("-------------------------------"+"\n"));
roloPapel.append(alinhaStringDir(" “+”\n"));
roloPapel.append(alinhaStringDir(formatStrNumerica(valor,casasDecimais) +" /"+"\n"));
soma = Double.parseDouble(valor);
visor.setText(formatStrNumerica(""+soma,casasDecimais));
valor="";
operador="/";
}
// Multiplica??o teclou “*”
public void teclouMultip(){
if (valor == “” )valor = valorAnterior;
roloPapel.append(alinhaStringDir("-------------------------------"+"\n"));
roloPapel.append(alinhaStringDir(" “+”\n"));
roloPapel.append(alinhaStringDir(formatStrNumerica(valor,casasDecimais) +" “+”\n"));
soma = Double.parseDouble(valor);
visor.setText(formatStrNumerica(""+soma,casasDecimais));
valor="";
operador="";
}
// Totaliza??o ENTER
public void teclouEnter(){
if (( operador == “+”)||(operador == “-”)){
roloPapel.append(alinhaStringDir("-------------------------------"+"\n"));
roloPapel.append(alinhaStringDir(formatStrNumerica(""+soma,casasDecimais) +" T"+"\n"));
}
if (( operador == “/”) && (soma != 0 )){
roloPapel.append(alinhaStringDir(formatStrNumerica(valor,casasDecimais) +" “+”\n"));
roloPapel.append(alinhaStringDir("-------------------------------"+"\n"));
soma = soma / Double.parseDouble(valor);
roloPapel.append(alinhaStringDir(formatStrNumerica(""+soma,casasDecimais) +" ="+"\n"));
}
if ( operador == “*”){
roloPapel.append(alinhaStringDir(formatStrNumerica(valor,casasDecimais) +" “+”\n"));
roloPapel.append(alinhaStringDir("-------------------------------"+"\n"));
soma = soma * Double.parseDouble(valor);
roloPapel.append(alinhaStringDir(formatStrNumerica(""+soma,casasDecimais) +" ="+"\n"));
}
roloPapel.append(alinhaStringDir(" “+”\n"));
visor.setText(formatStrNumerica(""+soma,casasDecimais));
valorAnterior = “”+soma;
soma = 0;
valor="";
}
//Funcao para alinhar os string a direita usado no JTextArea
public String alinhaStringDir(String s){
String alinhador = "";
int i;
for ( i = 0; i < (36 - s.length()); i++){
alinhador = alinhador+" ";
}
return alinhador+s;
}
//Fun??o que formata string numerica (nao estou usando ainda falta incluir componente
//para optar qtde de digitos depois da virgula
public String formatStrNumerica(String s, int dig){
DecimalFormat decimal = new DecimalFormat();
decimal.setMinimumFractionDigits(dig);
DecimalFormatSymbols simbolos = new DecimalFormatSymbols();
simbolos.setGroupingSeparator(',');
simbolos.setDecimalSeparator('.');
decimal.setDecimalFormatSymbols(simbolos);
return decimal.format(new java.math.BigDecimal(s));
}
// Fun??o que adiciona o componente no panel corretamente
private void addComponent ( Component component, int row, int column, int width, int height){
// addComponent(button1, LINHA, COLUNA, QTDECOLUNAS, QTDELINHAS)
constraints.gridx = column;
constraints.gridy = row;
constraints.gridwidth = width;
constraints.gridheight = height;
layout.setConstraints(component, constraints);
container.add (component);
}
/** Creates a new instance of Main */
public Calculadora(Container owner,Sistema sistema) {
super(owner);
this.setTitle(Funcoes.getDescricao("titulo_calculadora"));
// Inicializa as variaveis de gerenciamento de layout ========
container = getContentPane();
layout = new GridBagLayout();
container.setLayout(layout);
constraints = new GridBagConstraints();
// inicializa as variaveis dos objetos (componentes)==========
botao1 = new JButton(" 1 ");
botao2 = new JButton(" 2 ");
botao3 = new JButton(" 3 ");
botao4 = new JButton(" 4 ");
botao5 = new JButton(" 5 ");
botao6 = new JButton(" 6 ");
botao7 = new JButton(" 7 ");
botao8 = new JButton(" 8 ");
botao9 = new JButton(" 9 ");
botao0 = new JButton(" 0 ");
botaoC = new JButton(" C ");
botaoC.setToolTipText("Tecle C");
botaoCE = new JButton(" CE ");
botaoCE.setToolTipText("Tecle E");
botaoDiv = new JButton(" / ");
botaoMultip = new JButton(" * ");
botaoMenos = new JButton(" - ");
botaoMais = new JButton(" + ");
botaoVirgula = new JButton(" , ");
botaoVirgula.setToolTipText("Tecle , (Virgula)");
botaoTotal = new JButton(" T ");
botaoTotal.setToolTipText("Tecle ENTER");
botaoPerc = new JButton(" % ");
botaoPerc.setToolTipText("Tecle P");
botaoBackspace = new JButton(" < ");
botaoBackspace.setToolTipText("Tecle Backspace");
keyCodigo = new JLabel("0");
visor = new JLabel("0.00");
visor.setHorizontalAlignment(SwingConstants.RIGHT);
visor.setFont(new Font("Courier New", Font.BOLD, 16));
visor.setForeground(Color.RED);
visor.setToolTipText("Valores at? 14 digitos");
//Crio a parte de text area q ira receber os valores e crio as barras de
// rolagem dom o scroll (que ? um container) depois so adiciona o container scroll
roloPapel = new JTextArea(12, 15);
roloPapel.setEditable(false);
roloPapel.setFont(new Font("Courier New",Font.PLAIN,11));
scroll = new JScrollPane(roloPapel, ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
scroll.setBorder(new LineBorder(Color.pink, 3, true));
botao2dig = new JRadioButton("2", true);
botao4dig = new JRadioButton("4",false);
botao6dig = new JRadioButton("6 : Digitos Decimais",false);
botaoDecimais = new ButtonGroup();
botaoDecimais.add(botao2dig);
botaoDecimais.add(botao4dig);
botaoDecimais.add(botao6dig);
// Deixo apenas o label visor com foco pra fazer tratamento eventos teclado so nele
visor.setFocusable(true);
botao1.setFocusable(false);
botao2.setFocusable(false);
botao3.setFocusable(false);
botao4.setFocusable(false);
botao5.setFocusable(false);
botao6.setFocusable(false);
botao7.setFocusable(false);
botao8.setFocusable(false);
botao9.setFocusable(false);
botao0.setFocusable(false);
botaoC.setFocusable(false);
botaoCE.setFocusable(false);
botaoMais.setFocusable(false);
botaoMenos.setFocusable(false);
botaoDiv.setFocusable(false);
botaoPerc.setFocusable(false);
botaoMultip.setFocusable(false);
roloPapel.setFocusable(false);
botaoVirgula.setFocusable(false);
botaoTotal.setFocusable(false);
botaoBackspace.setFocusable(false);
botao2dig.setFocusable(false);
botao4dig.setFocusable(false);
botao6dig.setFocusable(false);
//======anchor=WEST mantem alinhamento dos componetnes a esquerda das celulas
//======weightx=0 indica que nao deve aumentar na horizontal pra ocupar celula
//======weighty=N indica que dever aumentar na vertical N pixel pra ocupar a celula
constraints.anchor = GridBagConstraints.WEST;
constraints.weightx = 0;
constraints.weighty = 1;
// adiciona os componente usando a funcao
// addComponent(button1, LINHA, COLUNA, QTDECOLUNAS, QTDELINHAS)
constraints.fill = GridBagConstraints.BOTH;
addComponent(scroll, 0, 0, 5, 1);
addComponent(visor, 1, 0, 5, 1);
addComponent(botao2dig, 2, 0, 1, 1);
addComponent(botao4dig, 2, 1, 1, 1);
addComponent(botao6dig, 2, 2, 3, 1);
constraints.weightx = 0;
constraints.weighty = 5;
addComponent(botaoPerc , 3, 0, 1, 1);
addComponent(botaoCE, 3, 4, 1, 1);
addComponent(botaoC, 4, 4, 1, 1);
addComponent(botaoBackspace,5, 4, 1, 1);
addComponent(botaoDiv, 3, 1, 1, 1);
addComponent(botaoMultip, 3, 2, 1, 1);
addComponent(botaoMenos, 3, 3, 1, 1);
addComponent(botao7, 4, 0, 1, 1);
addComponent(botao8, 4, 1, 1, 1);
addComponent(botao9, 4, 2, 1, 1);
addComponent(botaoMais, 4, 3, 1, 1);
addComponent(botao4, 5, 0, 1, 1);
addComponent(botao5, 5, 1, 1, 1);
addComponent(botao6, 5, 2, 1, 1);
addComponent(botaoVirgula, 5, 3, 1, 1);
addComponent(botao1, 6, 0, 1, 1);
addComponent(botao2, 6, 1, 1, 1);
addComponent(botao3, 6, 2, 1, 1);
addComponent(botao0, 6, 3, 1, 1);
addComponent(botaoTotal, 6, 4, 1, 1);
//=====tratamento de eventos de botoes====================
trataEventosAcao handlerAcao = new trataEventosAcao();
botaoC.addActionListener(handlerAcao);
botaoCE.addActionListener(handlerAcao);
botaoPerc.addActionListener(handlerAcao);
botaoDiv.addActionListener(handlerAcao);
botaoMultip.addActionListener(handlerAcao);
botaoMenos.addActionListener(handlerAcao);
botaoMais.addActionListener(handlerAcao);
botaoTotal.addActionListener(handlerAcao);
botaoVirgula.addActionListener(handlerAcao);
botao1.addActionListener(handlerAcao);
botao2.addActionListener(handlerAcao);
botao3.addActionListener(handlerAcao);
botao4.addActionListener(handlerAcao);
botao5.addActionListener(handlerAcao);
botao6.addActionListener(handlerAcao);
botao7.addActionListener(handlerAcao);
botao8.addActionListener(handlerAcao);
botao9.addActionListener(handlerAcao);
botao0.addActionListener(handlerAcao);
//=====tratamento de eventos de focus======================
trataEventosFocus handlerFocus = new trataEventosFocus();
//botao1.addFocusListener(handlerFocus);
//=====tratamento de evento de radiobuttons===============
trataEventosRadio handlerRadio = new trataEventosRadio();
botao2dig.addItemListener(handlerRadio);
botao4dig.addItemListener(handlerRadio);
botao6dig.addItemListener(handlerRadio);
//=====tratamemto de eventos de teclado ======================
//addKeyListener(this); Nao funcionou porque o frame nao fica com foco
visor.addKeyListener(this);
//===== Determina o tamanho da janela, inibe o redimencionamento, posiciona meio tela
setSize (285, 480);
//Dimension resVideo = Toolkit.getDefaultToolkit().getScreenSize();//verifica a resolu??o do v?deo
//Dimension tamForm = getSize();
//setLocation((resVideo.width - tamForm.width)/2,(resVideo.height - tamForm.height)/2);//coloca o painel bem no centro da tela
setResizable(false);
setVisible(true);
}
public static void main(String[] args) {
Calculadora application = new Calculadora(null,null);
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
[/code]
segue os erros
[code][color=blue][/color]
Exception in thread “main” java.lang.Error: Unresolved compilation problems:
The constructor Calculadora(null, null) is undefined
The method setDefaultCloseOperation(int) is undefined for the type Calculadora
at Calculadora.main(Calculadora.java:485)
[/code]
desde ja agradço quem poder dar uma analisada