não consigo que apareça o resultado da Label correspondente a cada Button

4 respostas
Vannessa

140 linhas de código pra quando eu ver, não funcionar :/
É o seguinte: fiz bonitinho, quando clico no JButton correspondente a figura aparace a quantidade de caixinhas certas, mais quando eu pedo os valores dessas caixinhas e passo quero fazer a conta, ela simplesmente não aparece o resultado na label;
Alguém poderia me dar essa luz?

package Area;

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

public class AreaFiguras extends JFrame{
    JLabel msg, result, vl1, vl2;
    JButton circulo, quadrado, retangulo, processar;
    JTextField valor1, valor2;
    JRadioButton radio;
    boolean isFunci;
    double resp;
    
public AreaFiguras (){
    super ("Escolha a figura Geometrica para ser calculada");
    
    msg = new JLabel("Sua escolha foi: ");
    result = new JLabel("Resultado: ");
    quadrado = new JButton("Quadrado");
    circulo = new JButton("Circulo");
    retangulo = new JButton("Retângulo");
    processar = new JButton("Calcular");
    vl1 = new JLabel("Digite o 1º Valor:");
    vl2 = new JLabel("Digite o 2º Valor:");
    valor1 = new JTextField(15);
    valor2 = new JTextField(15);
    
    Container pane = getContentPane();
    setLayout (null);
    
    pane.add(quadrado);
    pane.add(circulo);
    pane.add(retangulo);
    pane.add(msg);
    pane.add(vl1);
    pane.add(vl2);
    pane.add(valor1);
    pane.add(valor2);
    pane.add(result);
    pane.add(processar);
    
    quadrado.setBounds(30,30,100,20);
    circulo.setBounds(140,30,100,20);
    retangulo.setBounds(250,30,100,20);
    msg.setBounds(110,80,160,20);
    vl1.setBounds(80,130,160,20);
    valor1.setBounds(190,130,70,20);
    vl2.setBounds(80,160,160,20);
    valor2.setBounds(190,160,70,20);
    processar.setBounds(140,210,100,20);
    result.setBounds(130,260,160,20);
    
    valor1.setVisible(false);
    vl1.setVisible(false);
    vl2.setVisible(false);
    valor2.setVisible(false);
    result.setVisible(true);
    
    quadrado.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e){
            valor1.setText(null);
                valor2.setText(null);
            msg.setVisible(true);
            msg.setText("Sua escolha foi: Quadrado");
            valor1.setVisible(true);
            valor2.setVisible(true);
            vl1.setVisible(true);
            vl2.setVisible(true);
        }
    });
    
    circulo.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e){
            valor1.setText(null);
            valor2.setText(null);
            msg.setVisible(true);
            msg.setText("Sua escolha foi: Circulo");
            valor1.setVisible(true);
            vl1.setVisible(true);
            vl2.setVisible(false);
            valor2.setVisible(false);
        }
    });
    
    retangulo.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e){
            valor1.setText(null);
                valor2.setText(null);
            msg.setVisible(true);
            msg.setText("Sua escolha foi: Retângulo");
            valor1.setVisible(true);
            valor2.setVisible(true);
            vl1.setVisible(true);
            vl2.setVisible(true);}

    });
    
    processar.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e){
            if(quadrado.isSelected()){
                
                double v1, v2;
                v1=Double.parseDouble(valor1.getText());
                v2=Double.parseDouble(valor2.getText());
                resp=v1*v2;
                result.setText("Resultado igual" +resp);
            }
            else if(circulo.isSelected()){

                double r;
                r=Double.parseDouble(valor1.getText());
                resp=Math.PI*(r*r);
                result.setText("Resultado é : " +resp);
            }
            else if(retangulo.isSelected()){
                valor1.setText(null);
                valor2.setText(null);
                double v1, v2, r;
                v1=Double.parseDouble(valor1.getText());
                v2=Double.parseDouble(valor2.getText());
                r=v1*v2;
                result.setText("Resultaaddo; " +resp);
            }
            else {
                result.setText("Digite os valores primeiro!");
            }
        }
    });
    
    this.setVisible(true);
    this.setResizable(false);
    this.setSize(400,400);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    
}
public static void main (String [] args){
    AreaFiguras windows = new AreaFiguras();
}
}

Desde já, obg ;*

4 Respostas

B

alterei um pouquinho seu código! observa que coloquei uma String para verificar qual botao foi clicado "tipo" , mas agora você terá que validar os campos para os mesmos nao aceitar vazio e não aceitar caracteres inválido

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

public class AreaFiguras extends JFrame{
	static String tipo="";
    JLabel msg, result, vl1, vl2;
    JButton circulo, quadrado, retangulo, processar;
    JTextField valor1, valor2;
    JRadioButton radio;
    boolean isFunci;
    double resp;
    
public AreaFiguras (){
    super ("Escolha a figura Geometrica para ser calculada");
    
    msg = new JLabel("Sua escolha foi: ");
    result = new JLabel("Resultado: ");
    quadrado = new JButton("Quadrado");
    circulo = new JButton("Circulo");
    retangulo = new JButton("Retângulo");
    processar = new JButton("Calcular");
    vl1 = new JLabel("Digite o 1º Valor:");
    vl2 = new JLabel("Digite o 2º Valor:");
    valor1 = new JTextField(15);
    valor2 = new JTextField(15);
    
    Container pane = getContentPane();
    setLayout (null);
    
    pane.add(quadrado);
    pane.add(circulo);
    pane.add(retangulo);
    pane.add(msg);
    pane.add(vl1);
    pane.add(vl2);
    pane.add(valor1);
    pane.add(valor2);
    pane.add(result);
    pane.add(processar);
    
    quadrado.setBounds(30,30,100,20);
    circulo.setBounds(140,30,100,20);
    retangulo.setBounds(250,30,100,20);
    msg.setBounds(110,80,160,20);
    vl1.setBounds(80,130,160,20);
    valor1.setBounds(190,130,70,20);
    vl2.setBounds(80,160,160,20);
    valor2.setBounds(190,160,70,20);
    processar.setBounds(140,210,100,20);
    result.setBounds(130,260,160,20);
    
    valor1.setVisible(false);
    vl1.setVisible(false);
    vl2.setVisible(false);
    valor2.setVisible(false);
    result.setVisible(true);
    
    quadrado.addActionListener(new ActionListener(){
    
        public void actionPerformed(ActionEvent e){
        	tipo ="quadrado";
            valor1.setText(null);
                valor2.setText(null);
            msg.setVisible(true);
            msg.setText("Sua escolha foi: Quadrado");
            valor1.setVisible(true);
            valor2.setVisible(true);
            vl1.setVisible(true);
            vl2.setVisible(true);
        }
    });
    
    circulo.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e){
        	tipo ="circulo";
            valor1.setText(null);
            valor2.setText(null);
            msg.setVisible(true);
            msg.setText("Sua escolha foi: Circulo");
            valor1.setVisible(true);
            vl1.setVisible(true);
            vl2.setVisible(false);
            valor2.setVisible(false);
        }
    });
    
    retangulo.addActionListener(new ActionListener(){
    
        public void actionPerformed(ActionEvent e){
        	tipo ="retangulo";
            valor1.setText(null);
                valor2.setText(null);
            msg.setVisible(true);
            msg.setText("Sua escolha foi: Retângulo");
            valor1.setVisible(true);
            valor2.setVisible(true);
            vl1.setVisible(true);
            vl2.setVisible(true);}

    });
    
    processar.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e){
        
        		if(tipo.equals("quadrado")){
                
                double v1, v2;
                v1=Double.parseDouble(valor1.getText());
                v2=Double.parseDouble(valor2.getText());
                resp=v1*v2;
                result.setText("Resultado igual" +resp);
                tipo = "";
            }else if(tipo.equals("circulo")){
                double r;
                r=Double.parseDouble(valor1.getText());
                resp=Math.PI*(r*r);
                result.setText("Resultado é : " +resp);
                tipo = "";
            }
            else if(tipo.equals("retangulo")){
                valor1.setText(null);
                valor2.setText(null);
                double v1, v2, r;
                v1=Double.parseDouble(valor1.getText());
                v2=Double.parseDouble(valor2.getText());
                r=v1*v2;
                result.setText("Resultaaddo; " +resp);
                tipo = "";
            }
            else {
                result.setText("Digite os valores primeiro!");
            }
        }
    });
    
 
    
    this.setVisible(true);
    this.setResizable(false);
    this.setSize(400,400);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    
}
public static void main (String [] args){
    AreaFiguras windows = new AreaFiguras();
}
}
B

segue uma nova correção:
não sei se era isso que queria, mas tentei ajudar!
agora usei try catch para verificar se houve uma excption na hora de converter String para double, se acontecer ele
escreve uma mensagem de erro e desaparece, extrair um método campos() com a característica inicial da tela.

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

public class AreaFiguras extends JFrame{
	static String tipo="";
    JLabel msg, result, vl1, vl2;
    JButton circulo, quadrado, retangulo, processar;
    JTextField valor1, valor2;
    JRadioButton radio;
    boolean isFunci;
    double resp;
    
public AreaFiguras (){
    super ("Escolha a figura Geometrica para ser calculada");
    
    msg = new JLabel("Sua escolha foi: ");
    result = new JLabel("Resultado: ");
    quadrado = new JButton("Quadrado");
    circulo = new JButton("Circulo");
    retangulo = new JButton("Retângulo");
    processar = new JButton("Calcular");
    vl1 = new JLabel("Digite o 1º Valor:");
    vl2 = new JLabel("Digite o 2º Valor:");
    valor1 = new JTextField(15);
    valor2 = new JTextField(15);
    
    Container pane = getContentPane();
    setLayout (null);
    
    pane.add(quadrado);
    pane.add(circulo);
    pane.add(retangulo);
    pane.add(msg);
    pane.add(vl1);
    pane.add(vl2);
    pane.add(valor1);
    pane.add(valor2);
    pane.add(result);
    pane.add(processar);
    
    quadrado.setBounds(30,30,100,20);
    circulo.setBounds(140,30,100,20);
    retangulo.setBounds(250,30,100,20);
    msg.setBounds(110,80,160,20);
    vl1.setBounds(80,130,160,20);
    valor1.setBounds(190,130,70,20);
    vl2.setBounds(80,160,160,20);
    valor2.setBounds(190,160,70,20);
    processar.setBounds(140,210,100,20);
    result.setBounds(130,260,160,20);
    campos();
    
  
    quadrado.addActionListener(new ActionListener(){
    
        public void actionPerformed(ActionEvent e){
        	tipo ="quadrado";
            valor1.setText(null);
                valor2.setText(null);
            msg.setVisible(true);
            msg.setText("Sua escolha foi: Quadrado");
            valor1.setVisible(true);
            valor2.setVisible(true);
            vl1.setVisible(true);
            vl2.setVisible(true);
        }
    });
    
    circulo.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e){
        	tipo ="circulo";
            valor1.setText(null);
            valor2.setText(null);
            msg.setVisible(true);
            msg.setText("Sua escolha foi: Circulo");
            valor1.setVisible(true);
            vl1.setVisible(true);
            vl2.setVisible(false);
            valor2.setVisible(false);
        }
    });
    
    retangulo.addActionListener(new ActionListener(){
    
        public void actionPerformed(ActionEvent e){
        	tipo ="retangulo";
            valor1.setText(null);
                valor2.setText(null);
            msg.setVisible(true);
            msg.setText("Sua escolha foi: Retângulo");
            valor1.setVisible(true);
            valor2.setVisible(true);
            vl1.setVisible(true);
            vl2.setVisible(true);}

    });
    
    processar.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e){
        
        		if(tipo.equals("quadrado")){
        		tipo = "quadrado";
                double v1, v2;
                try{
                v1=Double.parseDouble(valor1.getText());
                v2=Double.parseDouble(valor2.getText());
                resp=v1*v2;
                result.setText("Resultado igual" +resp);
                tipo = "";
                }catch (Exception e2) {
                	campos();
                	result.setText("Digite valores válido!");
				}
            
            }else if(tipo.equals("circulo")){
            	tipo = "circulo";
                double r;
                try{
                r=Double.parseDouble(valor1.getText());
                resp=Math.PI*(r*r);
                result.setText("Resultado é : " +resp);
                tipo = "";
	            }catch (Exception e2) {
	            	campos();
	            	result.setText("Digite um valor válido!");
				}
               
            }
            else if(tipo.equals("retangulo")){
            	tipo = "retangulo";
                valor1.setText(null);
                valor2.setText(null);
                double v1, v2, r;
                try{
                v1=Double.parseDouble(valor1.getText());
                v2=Double.parseDouble(valor2.getText());
                r=v1*v2;
                result.setText("Resultaaddo; " +resp);
                tipo = "";
                }catch (Exception e2) {
                	campos();
                	result.setText("Digite valores válido!");
				}
               
            }
            else {
                result.setText("Digite os valores primeiro!");
            }
        }
    });
    
 
    
    this.setVisible(true);
    this.setResizable(false);
    this.setSize(400,400);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    
}
  private void campos(){
    
    valor1.setVisible(false);
    vl1.setVisible(false);
    vl2.setVisible(false);
    valor2.setVisible(false);
    msg.setVisible(false);
    result.setVisible(true);
    }
    
public static void main (String [] args){
    AreaFiguras windows = new AreaFiguras();
}
}
B
remove  as linhas 131 e 132

valor1.setText(null);

valor2.setText(null);
Vannessa

Obrigada -
Não sei porque não consegui assim, do jeito que você fez;
Mais eu tinha conseguido fazer esse mesmo exercício com JRadioButton ao invés de JButton e funfou s:
Mias ficou do jeito que eu queria, obrigada viu -

Criado 2 de junho de 2012
Ultima resposta 2 de jun. de 2012
Respostas 4
Participantes 2