Ajuda com Calculadora

47 respostas
R

Galera, eu estou fazendo um programinha pra criar uma calculadora básica, mas não consigo compilar e muito menos executar…que que está faltando? No DOS eu vou lá e: javac Calculadora.java e dá que não encontra o arquivo, mas está salvo no diretório certo e tudo certo…acredito que falte alguma coisa no programa mesmo.

PS: Não sei colocar o programa do jeito que vocês pedem aqui, desculpem.

package forms_swing;

import javax.swing.<em>;

import java.awt.</em>;

import java.awt.event.*;

public class calculadora extends JFrame implements ActionListener

{

JLabel lb_titulo, lb_autor, lb_logo;
JButton bt_soma, bt_subtrair, bt_multiplicar, bt_dividir, bt_limpar, bt_sair;
JTextField tf_num1, tf_num2, tf_resultado;
ImageIcon imagem_logo;
JMenuBar barra_menu;
JMenu menu_calculadora;
JMenuItem mi_somar, mi_dividir, mi_subtrair, mi_multiplicar, mi_limpar, mi_sair;

public Form_Ricardo() //Construtor

{

setTitle("Calculadora do Ricardo");
setSize(800,600); //Define tamanho em pixels, largura e altura
setLocalization(75,75);
setDefaultCloseOperation(JFrame, EXIT_ON_CLOSE);
setResitable(true);

//getContentPane().setBackground(Color.red);

getContentPane().setBackground(new Color(100,120,50));

/*Gerenciador FlowLayout() Posiciona automaticamente os componentes na tela;
getContentPane().setLayout(new Flowlayout(FlowLayout.CENTER));

Gerenciador GridLayout
getContentPane().setLayout(new GridLayout(numero_de_linhas, numero_de_colunas));
getContentPane().setLayout(new GridLayout(2,5,10,10));

Gerenciador BorderLayout disponibiliza os componentes em 5 regioes diferentes;
getContentPane().setLayout(new BorderLayout(20,50));*/

getContentPane().setLayout(null); //Informa que nao vai usar Gerenciador

imagem_logo = new ImageIcon(); 

//labels

lb_titulo = new JLabel ("Calculadora da Luciana");
lb_autor  = new JLabel ("Ricardo Santos Bezerra");
lb_logo   = new JLabel (imagem,logo);

//botoes

bt_somar       = new JButton("Somar");
bt_subtrair    = new JButton("Subtrair");
bt_multiplicar = new JButton("Multiplicar");
bt_dividir     = new JButton("Dividir");
bt_limpar      = new JButton("Limpar");
bt_sair        = new JButton("Sair");

//textfields

tf_num1      = new JTextField(10);
tf_num2      = new JTextField(10);
tf_resultado = new JTextField(20);

//menus

barra_menu = new JMenuBar();
setJMenuBar(barra_menu);
menu_calculadora = new JMenu("Calculadora");
barra_menu.add(menu_calculadora);

mi_somar       = new JMenuItem("Somar");
mi_subtrair    = new JMenuItem("Subtrair");
mi_multiplicar = new JMenuItem("Multiplicar");
mi_dividir     = new JMenuItem("Dividir");
mi_limpar      = new JMenuItem("Limpar");
mi_sair        = new JMenuItem("Sair");

menu_calculadora.add(mi_somar);
menu_calculadora.add(mi_subtrair);
menu_calculadora.add(mi_multiplicar);
menu_calculadora.add(mi_dividir);
menu_calculadora.addSeparator();
menu_calculadora.add(mi_limpar);
menu_calculadora.addSeparator();
menu_calculadora.add(mi_sair);

//cores para os componentes

lb_titulo.setForeground(Color.black);
lb_sair.setBackground(Color.yellow);
lb_autor.setForeground(Color.cyan);

//tamanho das fontes

lb_titulo	.setFont(new Font ("Arial", font.BOLD, 30));
lb_autor	.setFont(new Font("Courier", font.BOLD, 20));
lb_sair		.setFont(new Font("Arial", font.BOLD, 30));

//posicionamento de componentes na tela
//objeto.setBounds

lb_titulo	.setBounds(50,250,700, 40);
lb_logo		.setBounds(10,5,600,  100);
lb_autor	.setBounds(200,100,200,70);
lb_num1		.setBounds(100,100,50, 25);
lb_num2		.setBounds(100,140,50, 25);
lb_somar	.setBounds(50,180,50,  30);
lb_subtrair	.setBounds(170,250,700,40);
lb_multiplicar	.setBounds(110,250,700,40);
lb_dividir	.setBounds(230,250,700,40);
lb_limpar	.setBounds(50,250,700,40);
lb_sair		.setBounds(50,500,150, 50);

tf_resultado	.setBounds(50,230,200, 30);

}

}

47 Respostas

R

Consegui compilar, mas dá "1’ erro: no: Form_Ricardo();

heroijapa

Sua classe chama calculadora (com “c” minusculo, o padrão é que classes tenham a primeira letra maiúscula, mas isso não da erro)

public class calculadora

Já o construtor diz que sua classe chama Form_Ricardo

public Form_Ricardo() //Construtor

Isso já da erro, o construtor deve ter o nome da classe.

Depois a classe deve ter o mesmo nome do arquivo

A classe Calculadora deve estar em um arquivo chamado Calculadora.java

Espero que isso ajude

R

seria enta:

public Calculadora(); ???

ou tipo: public Calculadora calculadora = new Calculadora(); ???

Valeu.

R

tentei mudar para os 2 jeitos e os dois dão erro…só que: public Calculadora(); …continua um erro só, do outro jeito ficam 22 erros.

heroijapa

Manda o erro

R

Calculadora.java:19 invalid method declaration; return type required
public Calculadora(); //Construtor
^
1 error

PS: o ^ está logo abaixo do “C” de Calculadora.

R

E ai pessoal, nada? Por favor.

heroijapa

vc mudou o nome da classe para “Calculadora” ?

o construtor e a classe devem ter o mesmo nome, então a classe deve estar mauscula também.

Ou tudo começa com maiusculo, ou com minusculo (não aconselhavel para nomes de classes) se for diferente da erro.

Anime

Oi,

Acho que já foi respondido mas…

O nome do metodo construtor tem que ser exatamento como o da classe,então o C maiuscula deveria ser minusculo c … Não é isso não? :roll:

R

então, mudei e tentei com maiúsculo e minúsculo, continua dando erro.

heroijapa

Devem ser erros novos manda como esta sua classe agora (Com o primeiro caracter do nome da classe em maiusculo)

R

Hum, olha só, eu estou com o jdk e javaSE, não sei se isso tem algo a ver, mas o tutorial que segui qdo fiz tinha algo dizendo que eram exemplos para celulares, daí talvez tivesse q ter instalado o micro edition, ou não tem nada à ver?

R
package forms_swing;

import javax.swing.<em>;

import java.awt.</em>;

import java.awt.event.*;

public class calculadora extends JFrame implements ActionListener

{

JLabel lb_titulo, lb_autor, lb_logo;
JButton bt_soma, bt_subtrair, bt_multiplicar, bt_dividir, bt_limpar, bt_sair;
JTextField tf_num1, tf_num2, tf_resultado;
ImageIcon imagem_logo;
JMenuBar barra_menu;
JMenu menu_calculadora;
JMenuItem mi_somar, mi_dividir, mi_subtrair, mi_multiplicar, mi_limpar, mi_sair;

//Construtor

public Calculadora(); 

{

setTitle("Calculadora do Ricardo");
setSize(800,600); //Define tamanho em pixels, largura e altura
setLocalization(75,75);
setDefaultCloseOperation(JFrame, EXIT_ON_CLOSE);
setResitable(true);

//getContentPane().setBackground(Color.red);

getContentPane().setBackground(new Color(100,120,50));

/*Gerenciador FlowLayout() Posiciona automaticamente os componentes na tela;
getContentPane().setLayout(new Flowlayout(FlowLayout.CENTER));

Gerenciador GridLayout
getContentPane().setLayout(new GridLayout(numero_de_linhas, numero_de_colunas));
getContentPane().setLayout(new GridLayout(2,5,10,10));

Gerenciador BorderLayout disponibiliza os componentes em 5 regioes diferentes;
getContentPane().setLayout(new BorderLayout(20,50));*/

getContentPane().setLayout(null); //Informa que nao vai usar Gerenciador

imagem_logo = new ImageIcon(); 

//labels

lb_titulo = new JLabel ("Calculadora da Luciana");
lb_autor  = new JLabel ("Ricardo Santos Bezerra");
lb_logo   = new JLabel (imagem,logo);

//botoes

bt_somar       = new JButton("Somar");
bt_subtrair    = new JButton("Subtrair");
bt_multiplicar = new JButton("Multiplicar");
bt_dividir     = new JButton("Dividir");
bt_limpar      = new JButton("Limpar");
bt_sair        = new JButton("Sair");

//textfields

tf_num1      = new JTextField(10);
tf_num2      = new JTextField(10);
tf_resultado = new JTextField(20);

//menus

barra_menu = new JMenuBar();
setJMenuBar(barra_menu);
menu_calculadora = new JMenu("Calculadora");
barra_menu.add(menu_calculadora);

mi_somar       = new JMenuItem("Somar");
mi_subtrair    = new JMenuItem("Subtrair");
mi_multiplicar = new JMenuItem("Multiplicar");
mi_dividir     = new JMenuItem("Dividir");
mi_limpar      = new JMenuItem("Limpar");
mi_sair        = new JMenuItem("Sair");

menu_calculadora.add(mi_somar);
menu_calculadora.add(mi_subtrair);
menu_calculadora.add(mi_multiplicar);
menu_calculadora.add(mi_dividir);
menu_calculadora.addSeparator();
menu_calculadora.add(mi_limpar);
menu_calculadora.addSeparator();
menu_calculadora.add(mi_sair);

//cores para os componentes

lb_titulo.setForeground(Color.black);
lb_sair.setBackground(Color.yellow);
lb_autor.setForeground(Color.cyan);

//tamanho das fontes

lb_titulo	.setFont(new Font ("Arial", font.BOLD, 30));
lb_autor	.setFont(new Font("Courier", font.BOLD, 20));
lb_sair		.setFont(new Font("Arial", font.BOLD, 30));

//posicionamento de componentes na tela
//objeto.setBounds

lb_titulo	.setBounds(50,250,700, 40);
lb_logo		.setBounds(10,5,600,  100);
lb_autor	.setBounds(200,100,200,70);
lb_num1		.setBounds(100,100,50, 25);
lb_num2		.setBounds(100,140,50, 25);
lb_somar	.setBounds(50,180,50,  30);
lb_subtrair	.setBounds(170,250,700,40);
lb_multiplicar	.setBounds(110,250,700,40);
lb_dividir	.setBounds(230,250,700,40);
lb_limpar	.setBounds(50,250,700,40);
lb_sair		.setBounds(50,500,150, 50);

tf_resultado	.setBounds(50,230,200, 30);

}

}

R

continua o mesmo erro.

heroijapa

olha lá

public class calculadora extends JFrame implements ActionListener

tem que mudar para

public class Calculadora extends JFrame implements ActionListener

R

Então, fazendo isso agora aumentou para 21 erros. Mantém o mesmo erro e mais 20.

Anime

O metodo contrutor deve ficar apos a classe…

Exemplo…

public class calculadora extends JFrame implements ActionListener{



public calculadora(){//Construtor



JLabel lb_titulo, lb_autor, lb_logo;
JButton bt_soma, bt_subtrair, bt_multiplicar, bt_dividir, bt_limpar, bt_sair;
JTextField tf_num1, tf_num2, tf_resultado;
ImageIcon imagem_logo;
JMenuBar barra_menu;
JMenu menu_calculadora;
JMenuItem mi_somar, mi_dividir, mi_subtrair, mi_multiplicar, mi_limpar, mi_sair;
wiltonor

Segue a classe corrigida:

package forms_swing;

import javax.swing.<em>;

import java.awt.</em>;

import java.awt.event.*;

public class Calculadora extends JFrame implements ActionListener

{

JLabel lb_titulo, lb_autor, lb_logo, lb_sair,lb_num1,lb_num2,lb_somar,lb_subtrair,lb_multiplicar,lb_dividir,lb_limpar;

JButton bt_somar, bt_subtrair, bt_multiplicar, bt_dividir, bt_limpar, bt_sair;

JTextField tf_num1, tf_num2, tf_resultado;

ImageIcon imagem_logo;

JMenuBar barra_menu;

JMenu menu_calculadora;

JMenuItem mi_somar, mi_dividir, mi_subtrair, mi_multiplicar, mi_limpar, mi_sair;

public Calculadora() //Construtor

{

setTitle(Calculadora do Ricardo);

setSize(800,600); //Define tamanho em pixels, largura e altura

setLocation(75,75);

setDefaultCloseOperation(EXIT_ON_CLOSE);

setResizable(true);

//getContentPane().setBackground(Color.red);

getContentPane().setBackground(new Color(100,120,50));

/*Gerenciador FlowLayout() Posiciona automaticamente os componentes na tela;
getContentPane().setLayout(new Flowlayout(FlowLayout.CENTER));

Gerenciador GridLayout

getContentPane().setLayout(new GridLayout(numero_de_linhas, numero_de_colunas));

getContentPane().setLayout(new GridLayout(2,5,10,10));

Gerenciador BorderLayout disponibiliza os componentes em 5 regioes diferentes;
getContentPane().setLayout(new BorderLayout(20,50));*/

getContentPane().setLayout(null); //Informa que nao vai usar Gerenciador

imagem_logo = new ImageIcon();

//labels

lb_titulo = new JLabel (Calculadora da Luciana);

lb_autor = new JLabel (Ricardo Santos Bezerra);

lb_logo = new JLabel (imagem_logo);

//botoes

bt_somar = new JButton(Somar);

bt_subtrair = new JButton(Subtrair);

bt_multiplicar = new JButton(Multiplicar);

bt_dividir = new JButton(Dividir);

bt_limpar = new JButton(Limpar);

bt_sair = new JButton(Sair);

//textfields

tf_num1 = new JTextField(10);

tf_num2 = new JTextField(10);

tf_resultado = new JTextField(20);

//menus

barra_menu = new JMenuBar();

setJMenuBar(barra_menu);

menu_calculadora = new JMenu(Calculadora);

barra_menu.add(menu_calculadora);
mi_somar = new JMenuItem(Somar);

mi_subtrair = new JMenuItem(Subtrair);

mi_multiplicar = new JMenuItem(Multiplicar);

mi_dividir = new JMenuItem(Dividir);

mi_limpar = new JMenuItem(Limpar);

mi_sair = new JMenuItem(Sair);
menu_calculadora.add(mi_somar);

menu_calculadora.add(mi_subtrair);

menu_calculadora.add(mi_multiplicar);

menu_calculadora.add(mi_dividir);

menu_calculadora.addSeparator();

menu_calculadora.add(mi_limpar);

menu_calculadora.addSeparator();

menu_calculadora.add(mi_sair);

//cores para os componentes

lb_titulo.setForeground(Color.black);

lb_sair.setBackground(Color.yellow);

lb_autor.setForeground(Color.cyan);

//tamanho das fontes

lb_titulo .setFont(new Font (Arial, Font.BOLD, 30));

lb_autor .setFont(new Font(Courier, Font.BOLD, 20));

lb_sair .setFont(new Font(Arial, Font.BOLD, 30));

//posicionamento de componentes na tela
//objeto.setBounds

lb_titulo .setBounds(50,250,700, 40);

lb_logo .setBounds(10,5,600, 100);

lb_autor .setBounds(200,100,200,70);

lb_num1 .setBounds(100,100,50, 25);

lb_num2 .setBounds(100,140,50, 25);

lb_somar .setBounds(50,180,50, 30);

lb_subtrair .setBounds(170,250,700,40);

lb_multiplicar .setBounds(110,250,700,40);

lb_dividir .setBounds(230,250,700,40);

lb_limpar .setBounds(50,250,700,40);

lb_sair .setBounds(50,500,150, 50);

tf_resultado .setBounds(50,230,200, 30);

}
public void actionPerformed(ActionEvent e){}

}

Att,

Wilton.

heroijapa

Cola os erros aqui tbm

Anime

Qual era o erro amigo,sem saber ninguém aprendera…

R

Agora mudando pra como o Wilton disse, são 7 erros.

C:\Java>javac calculadora.java

calculadora.java:20: illegal start of expression

public Calculadora() //construtor

^

calculadora.java:20: ; expected

public Calculadora() //construtor

^

calculadora.java:123: illegal start of expression

public void actionPerformed(ActionEvent e){}

^

calculadora.java:123: illegal start of expression

public void actionPerformed(ActionEvent e){}

^

calculadora.java:123: ; expected

public void actionPerformed(ActionEvent e){}

^

calculadora.java:123: ; expected

public void actionPerformed(ActionEvent e){}

^

calculadora.java:125: reached end of file while parsing

}

^

7 errors
wiltonor

Copie exatamente o que coloquei e salve o arquivo com o nome Calculadora.java , o "C"maiúsculo. Ele vai compilar sem erros, não pode faltar nenhuma chave.

wiltonor

Complementando os principais defeitos que concertei foi variáveis não declaradas, métodos com nome ou assinatura errados e o erro principal era faltava implementar o método public void actionPerformed(ActionEvent e) da interface ActionListener.

R

Aeeee, estamos evoluindo muito já…ela está compilando, mas na hora de executar aparece isso:

C:\Java>java Calculadora

Exception in thread main java.lang.NoClassDefFoundError: Calculadora (wrong na

me: forms_swing/Calculadora)

at java.lang.ClassLoader.defineClass1(Native Method)

at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)

at java.lang.ClassLoader.defineClass(ClassLoader.java:616)

at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:14

1)

at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)

at java.net.URLClassLoader.access$000(URLClassLoader.java:58)

at java.net.URLClassLoader$1.run(URLClassLoader.java:197)

at java.security.AccessController.doPrivileged(Native Method)

at java.net.URLClassLoader.findClass(URLClassLoader.java:190)

at java.lang.ClassLoader.loadClass(ClassLoader.java:307)

at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)

at java.lang.ClassLoader.loadClass(ClassLoader.java:248)

Could not find the main class: Calculadora.  Program will exit.
heroijapa

Veja o package, a primeira linha de código, tire a linha inteira e tente compilar.

R

ok, o erro agora é esse:

C:\Java>java Calculadora
Exception in thread “main” java.lang.NoSuchMethodError: main

heroijapa

Cara, ta tudo errado ai hehehehehe dei uma corrigida básica, mas não vou fazer tudo tudo.

não tem metodo main, é isso que ele ta reclamando.

estavam errados o nomes das variaveis em varios pontos (prefixos dos nomes trocados bt_ por lb_)

import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 

public class Calculadora extends JFrame implements ActionListener 

{ 

JLabel lb_titulo, lb_autor, lb_logo; 
JButton bt_somar, bt_subtrair, bt_multiplicar, bt_dividir, bt_limpar, bt_sair; 
JTextField tf_num1, tf_num2, tf_resultado; 
ImageIcon imagem_logo; 
JMenuBar barra_menu; 
JMenu menu_calculadora; 
JMenuItem mi_somar, mi_dividir, mi_subtrair, mi_multiplicar, mi_limpar, mi_sair; 

public Calculadora() //Construtor 

{ 

setTitle("Calculadora do Ricardo"); 
setSize(800,600); //Define tamanho em pixels, largura e altura 
setLocation(75,75); 
setDefaultCloseOperation(EXIT_ON_CLOSE); 
setResizable(true); 

//getContentPane().setBackground(Color.red); 

getContentPane().setBackground(new Color(100,120,50)); 

/*Gerenciador FlowLayout() Posiciona automaticamente os componentes na tela; 
getContentPane().setLayout(new Flowlayout(FlowLayout.CENTER)); 

Gerenciador GridLayout 
getContentPane().setLayout(new GridLayout(numero_de_linhas, numero_de_colunas)); 
getContentPane().setLayout(new GridLayout(2,5,10,10)); 

Gerenciador BorderLayout disponibiliza os componentes em 5 regioes diferentes; 
getContentPane().setLayout(new BorderLayout(20,50));*/ 

getContentPane().setLayout(null); //Informa que nao vai usar Gerenciador 

imagem_logo = new ImageIcon(); 

//labels 

lb_titulo = new JLabel ("Calculadora da Luciana"); 
lb_autor = new JLabel ("Ricardo Santos Bezerra");
lb_logo = new JLabel (imagem_logo); 

//botoes 

bt_somar = new JButton("Somar"); 
bt_subtrair = new JButton("Subtrair"); 
bt_multiplicar = new JButton("Multiplicar"); 
bt_dividir = new JButton("Dividir"); 
bt_limpar = new JButton("Limpar"); 
bt_sair = new JButton("Sair"); 

//textfields 

tf_num1 = new JTextField(10); 
tf_num2 = new JTextField(10); 
tf_resultado = new JTextField(20); 

//menus 

barra_menu = new JMenuBar(); 
setJMenuBar(barra_menu); 
menu_calculadora = new JMenu("Calculadora"); 
barra_menu.add(menu_calculadora); 

mi_somar = new JMenuItem("Somar"); 
mi_subtrair = new JMenuItem("Subtrair"); 
mi_multiplicar = new JMenuItem("Multiplicar"); 
mi_dividir = new JMenuItem("Dividir"); 
mi_limpar = new JMenuItem("Limpar"); 
mi_sair = new JMenuItem("Sair"); 

menu_calculadora.add(mi_somar); 
menu_calculadora.add(mi_subtrair); 
menu_calculadora.add(mi_multiplicar); 
menu_calculadora.add(mi_dividir); 
menu_calculadora.addSeparator(); 
menu_calculadora.add(mi_limpar); 
menu_calculadora.addSeparator(); 
menu_calculadora.add(mi_sair); 

//cores para os componentes 

lb_titulo.setForeground(Color.black); 
bt_sair.setBackground(Color.yellow); 
lb_autor.setForeground(Color.cyan); 

//tamanho das fontes 

lb_titulo .setFont(new Font ("Arial", Font.BOLD, 30)); 
lb_autor .setFont(new Font("Courier", Font.BOLD, 20)); 
bt_sair .setFont(new Font("Arial", Font.BOLD, 30)); 

//posicionamento de componentes na tela 
//objeto.setBounds 

lb_titulo .setBounds(50,250,700, 40); 
lb_logo .setBounds(10,5,600, 100); 
lb_autor .setBounds(200,100,200,70); 
tf_num1.setBounds(100,100,50, 25); 
tf_num2 .setBounds(100,140,50, 25); 
bt_somar .setBounds(50,180,50, 30); 
bt_subtrair .setBounds(170,250,700,40); 
bt_multiplicar .setBounds(110,250,700,40); 
bt_dividir .setBounds(230,250,700,40); 
bt_limpar .setBounds(50,250,700,40); 
bt_sair .setBounds(50,500,150, 50); 

tf_resultado .setBounds(50,230,200, 30); 

//AQUIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII

} 
public void actionPerformed(ActionEvent e){} 

public static void main(String[] args) {
	Calculadora calculadora = new Calculadora();
	calculadora.setVisible(true);
}



}
Agora onde tem um comentario aqui, vc deve adicionar seus componentes na tela tipo
this.add(bt_sair)

um a um para eles aparecerem ok?

R

beleza, lá no final o Calculadora.calculadora chamando construtor, o sistema disse q é sem ponto, tipo: Calculadora calculadora = new Calculadora(); mas agora de 2 erros, arrumando isso voltou a ter 1 erro…esse:

C:\Java>javac Calculadora.java
Calculadora.java:132: incompatible types
found : java.lang.String
required: Calculadora
Calculadora setVisible = “true”;
^
1 error

R

se eu apago essa linha: Calculadora.setVisible = (true); - compila e executa normalmente, mas obviamente não aparece nada, pq n tem o setVisible…acho q significa q essa linha sendo corrigida resolve.

Anime
new Calculadora().setVisible(true);
R

aeeeee…rodou…ficou horrível, mas rodou…hahaha…valeu.

Anime

ficou horrível foi ótimo rsrs… :wink:

ViniGodoy

Estranho… algumas das suas dúvidas são muito básicas. Sugiro que você volte a estudar o basicão de java antes de se aventurar no Swing.

Outra coisa, procure baixar uma IDE, como o eclipse ou o Netbeans. Ela te ajudará a corrigir erros de digitação. Como vc já saiu da fase de escrever programas para o console, essas IDEs serão uma mão na roda.

Finalmente, se for falar de erros no GUJ, procure dizer a mensagem, e não só dizer que “deu erro”, “deu mais 10 erros”, etc… tente também ler a mensagem, entende-la e, só se não conseguir corrigir, perguntar aqui. :wink:

R

Entendi, mas onde eu posso procurar tópicos de ajudas pra fazer os eventos dos botões dessa calculadora e como posso “embelezá-la”…pq tá mto feia tadinha…haah…obrigado. ah…e estou usando o GEdit…e estou fazendo um curso iniciante, mas quero ir vendo uns códigos mais avançados, pra não desanimar, só hello world é desanimador pra mim, mas tudo bem, entendi o recado.

heroijapa

Velho melhor amigo de programador é o Google (ou outro buscador qualquer)

Vai la e digita algo como java botão evento exemplo e vai kicando até achar a resposta

Pelo google vc vai achar muita coisa (e muitos links pro guj tbm, pq alguem ja teve sua duvida antes e ja ta respondida na net com certeza)

Mas no começo é dificil mesmo fazer as coisas sozinho, o conselho acho que é, busca antes, e se precisar pedir ajuda, cola o erro do compilador e o código fonte.

Espero ter ajudado

ViniGodoy

Dá uma olhada: http://www.guj.com.br/java/140986-como-acionar-os-bots-de-uma-calculadora-atrav-do-teclado

R

Valeu. Abraço.

R

Olha só Vini, na hora de compilar aparece o seguinte erro:

C:\Java>javac CalculadoraFrame.java
CalculadoraFrame.java:58: not a statement
returntxtVisor;
^
1 error

mas está feito do jeito certo, igual ao seu. O que pode estar errado?

R

Achei o erro. Valeu, tinha escrito sem espaço.

R

Bom, o erro final acho que é esse:

C:\Java>javac CalculadoraFrame.java

CalculadoraFrame.java:51: cannot find symbol

symbol  : method registrarAcoesDoTeclado(javax.swing.JPanel)

location: class CalculadoraFrame

registrarAcoesDoTeclado(pnlPrincipal);

^

1 error

esse não estou conseguindo entender mesmo.

R

vamos lá pessoal, por favor, dêem uma força aqui.

heroijapa

Cola o código também.

Eric_Yuzo

Uma coisa muito importante é saber interpretar as mensagens de erro. Elas servem exatamente para indicar qual problema que está ocorrendo.

CalculadoraFrame.java:51: cannot find symbol -> Tem um símbolo na linha 51 que não está sendo encontrado.

symbol : method registrarAcoesDoTeclado(javax.swing.JPanel) -> o símbolo que não está sendo encontrado é um método chamado registrarAcoesDoTeclado, que está recebendo um parâmetro do tipo javax.swing.JPanel.

location: class CalculadoraFrame -> isto está ocorrendo na classe CalculadoraFrame.

Você já criou o método “registrarAcoesDoTeclado”, que recebe um JPanel como parâmetro?

Paulo_Dias

Eae, peguei o seu codigo ( o do primeiro post ) e vou tentar explicar os erros que ele tinha, espero que ajude

public class calculadora extends JFrame implements ActionListener - vc precisa sobrescrever o metodo actionPerformed, quando vc implementa uma interface tem que sobrescrever os metodos dela ;

alugns metodos estão com os nomes errados - ex. setLocalization(75,75); acho que vc queria setLocation;

algumas vezes vc trovou ponto por virgula - setDefaultCloseOperation(JFrame, EXIT_ON_CLOSE); use JFrame.EXIT_ON_CLOSE ou só EXIT_ON_CLOSE ( sua class extends JFrame por isso tbm tem essa constante);

algumas vezes vc troca os nomes das variaveis - lb_sair.setBackground(Color.yellow); acho que vc queria chamar bt_sair

vc esqueceu de adicionar os elementos - use getContentPane.add( elemento )

tenta com esse cod

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Calculadora extends JFrame implements ActionListener {

	JLabel lb_titulo, lb_autor, lb_logo;
	JButton bt_somar, bt_subtrair, bt_multiplicar, bt_dividir, bt_limpar, bt_sair;
	JTextField tf_num1, tf_num2, tf_resultado;
	ImageIcon imagem_logo;
	JMenuBar barra_menu;
	JMenu menu_calculadora;
	JMenuItem mi_somar, mi_dividir, mi_subtrair, mi_multiplicar, mi_limpar, mi_sair;

public Calculadora() {

	setTitle("Calculadora do Ricardo");
	setSize(800,600); //Define tamanho em pixels, largura e altura
	setLocation(75,75); // vc tinha trocado o nome do metodo
	setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // vc tinha errado a constante 
	setResizable(true); // vc tinha errado o nome do metodo

	//getContentPane().setBackground(Color.red);

	getContentPane().setBackground(new Color(100,120,50));

	/*Gerenciador FlowLayout() Posiciona automaticamente os componentes na tela;
	getContentPane().setLayout(new Flowlayout(FlowLayout.CENTER));

	Gerenciador GridLayout
	getContentPane().setLayout(new GridLayout(numero_de_linhas, numero_de_colunas));
	getContentPane().setLayout(new GridLayout(2,5,10,10));

	Gerenciador BorderLayout disponibiliza os componentes em 5 regioes diferentes;
	getContentPane().setLayout(new BorderLayout(20,50));*/

	getContentPane().setLayout(null); //Informa que nao vai usar Gerenciador

	imagem_logo = new ImageIcon();

	//labels

	lb_titulo = new JLabel ("Calculadora da Luciana");
	lb_autor = new JLabel ("Ricardo Santos Bezerra");
	lb_logo = new JLabel (imagem_logo); // vc tinha usado imagem,logo

	//botoes

	bt_somar = new JButton("Somar"); // vc tinha declarado bt_soma
	bt_subtrair = new JButton("Subtrair");
	bt_multiplicar = new JButton("Multiplicar");
	bt_dividir = new JButton("Dividir");
	bt_limpar = new JButton("Limpar");
	bt_sair = new JButton("Sair");

	//textfields

	tf_num1 = new JTextField(10);
	tf_num2 = new JTextField(10);
	tf_resultado = new JTextField(20);

	//menus

	barra_menu = new JMenuBar();
	setJMenuBar(barra_menu);
	menu_calculadora = new JMenu("Calculadora");
	barra_menu.add(menu_calculadora);

	mi_somar = new JMenuItem("Somar");
	mi_subtrair = new JMenuItem("Subtrair");
	mi_multiplicar = new JMenuItem("Multiplicar");
	mi_dividir = new JMenuItem("Dividir");
	mi_limpar = new JMenuItem("Limpar");
	mi_sair = new JMenuItem("Sair");

	menu_calculadora.add(mi_somar);
	menu_calculadora.add(mi_subtrair);
	menu_calculadora.add(mi_multiplicar);
	menu_calculadora.add(mi_dividir);
	menu_calculadora.addSeparator();
	menu_calculadora.add(mi_limpar);
	menu_calculadora.addSeparator();
	menu_calculadora.add(mi_sair);

	//cores para os componentes

	lb_titulo.setForeground(Color.black);
	//  lb_sair.setBackground(Color.yellow); vc não declarou lb_sair
	lb_autor.setForeground(Color.cyan);

	//tamanho das fontes

	lb_titulo.setFont(new Font ("Arial", Font.BOLD, 30));
	lb_autor.setFont(new Font("Courier", Font.BOLD, 20));
	// lb_sair.setFont(new Font("Arial", Font.BOLD, 30)); vc não declarou um lb_sair

	//posicionamento de componentes na tela
	//objeto.setBounds

	lb_titulo .setBounds(50,250,700, 40);
	lb_logo .setBounds(10,5,600, 100);
	lb_autor .setBounds(200,100,200,70);
	tf_num1 .setBounds(100,100,50, 25);
	tf_num2 .setBounds(100,140,50, 25);
	bt_somar .setBounds(50,180,50, 30);
	bt_subtrair .setBounds(170,250,700,40);
	bt_multiplicar .setBounds(110,250,700,40);
	bt_dividir .setBounds(230,250,700,40);
	bt_limpar .setBounds(50,250,700,40);
	bt_sair .setBounds(50,500,150, 50);

	tf_resultado .setBounds(50,230,200, 30);
	
	getContentPane().add( tf_resultado );

	}



	public static void main( String[] args ) {
		Calculadora c = new Calculadora();
		c.setVisible( true );
	}
	
	
	public void actionPerformed( ActionEvent e ) {
	
	}
	
	
	
}
Anime

Oi,

Da uma olhadinha aqui…

http://www.youtube.com/results?search_query=java+calculadora+com+interface+grafica&aq=f

R

Então pessoal, esse exemplo não é meu, ele é do Vini, moderador…mas eu já olhei de cabo a rabo e tá tudo igual ao dele. Mas ainda dá esse erro na linha 51, o outros erros já vi que foram todos de falta de atenção, mas esse é o único que resta.

R

Poxa pessoa, nada?

Criado 15 de janeiro de 2011
Ultima resposta 18 de jan. de 2011
Respostas 47
Participantes 7