Amigos, estou tentando resolver um exercício, onde o layout está pronto, apenas a programação dos botões está errada. Estou pesquisando bastante, mas não consigo de forma alguma resolver o exercício. Nele, deve-se digitar um valor, escolher entre Desconto ou juros, e em seguida escolher entre 10, 20 ou 30%. Não sei se estou errando nos if’s, mas já estou quase desistindo. Alguém conseguiria me ajudar?
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class Ex16 extends JFrame implements ItemListener {
JLabel rotulo1, rotulo2, rotulo3,rotulo4;
JTextField texto1, texto2;
JPanel painel1, painel2;
JRadioButton opcao1, opcao2, opcao3, opcao4, opcao5;
ButtonGroup opcoesdeRadio, opcoesdeRadio2;
float numero = 0, resposta = 0;
Color cordeFundo = new Color(150, 200, 250);
public static void main(String args[]) {
JFrame GUI = new Ex16();
GUI.setVisible(true);
GUI.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
Ex16() {
setTitle("GUI com Botões de Rádio ");
setSize(500, 150);
getContentPane().setBackground(cordeFundo);
setLayout(new FlowLayout(FlowLayout.CENTER));
rotulo1 = new JLabel("Digite o Valor:");
rotulo1.setForeground(Color.red);
rotulo2 = new JLabel("Porcentagem desse Valor:");
rotulo2.setForeground(Color.blue);
rotulo3 = new JLabel("Cálculo com:");
rotulo3.setForeground(Color.red);
rotulo4 = new JLabel("Valor final:");
rotulo4.setForeground(Color.blue);
texto1 = new JTextField(5);
texto2 = new JTextField(5);
texto2.setEditable(false);
texto2.setBackground(cordeFundo);
texto2.setForeground(Color.DARK_GRAY);
texto2.setFont(new Font("", Font.BOLD, 14));
painel1 = new JPanel();
painel2 = new JPanel();
opcao1 = new JRadioButton("10% do valor");
opcao1.setMnemonic(KeyEvent.VK_1);
opcao1.addItemListener(this);
opcao1.setBackground(cordeFundo);
opcao1.setForeground(Color.black);
opcao2 = new JRadioButton("20% do valor");
opcao2.setMnemonic(KeyEvent.VK_2);
opcao2.addItemListener(this);
opcao2.setBackground(cordeFundo);
opcao2.setForeground(Color.black);
opcao3 = new JRadioButton("30% do valor");
opcao3.setMnemonic(KeyEvent.VK_3);
opcao3.addItemListener(this);
opcao3.setBackground(cordeFundo);
opcao3.setForeground(Color.black);
opcao4 = new JRadioButton("Desconto");
opcao4.setMnemonic(KeyEvent.VK_4);
opcao4.addItemListener(this);
opcao4.setBackground(cordeFundo);
opcao4.setForeground(Color.black);
opcao5 = new JRadioButton("Juros");
opcao5.setMnemonic(KeyEvent.VK_5);
opcao5.addItemListener(this);
opcao5.setBackground(cordeFundo);
opcao5.setForeground(Color.black);
opcoesdeRadio = new ButtonGroup();
opcoesdeRadio2 = new ButtonGroup();
opcoesdeRadio.add(opcao1);
opcoesdeRadio.add(opcao2);
opcoesdeRadio.add(opcao3);
opcoesdeRadio2.add(opcao4);
opcoesdeRadio2.add(opcao5);
painel1.setLayout(new FlowLayout(FlowLayout.CENTER));
painel1.setBackground(cordeFundo);
painel2.setLayout(new GridLayout(2, 3));
painel2.setBackground(cordeFundo);
painel1.add(rotulo1);
painel1.add(texto1);
painel1.add(rotulo3);
painel1.add(opcao4);
painel1.add(opcao5);
painel2.add(opcao1);
painel2.add(opcao2);
painel2.add(opcao3);
painel2.add(rotulo4);
painel2.add(texto2);
add(painel1);
add(painel2);
}
public void itemStateChanged(ItemEvent evento) {
if (texto1.getText().length() == 0) {
return;
}
try {
numero = Float.parseFloat(texto1.getText());
if (evento.getSource() == opcao4 && evento.getSource() == opcao1) {
resposta = numero - (numero * 10) / 100;
}
if (evento.getSource() == opcao4 && evento.getSource() == opcao2) {
resposta = numero - (numero * 20) / 100;
}
if (evento.getSource() == opcao4 && evento.getSource() == opcao3) {
resposta = numero - (numero * 30) / 100;
}
if (evento.getSource() == opcao5 && evento.getSource() == opcao1) {
resposta = numero + (numero * 10) / 100;
}
if (evento.getSource() == opcao5 && evento.getSource() == opcao2) {
resposta = numero + (numero * 20) / 100;
}
if (evento.getSource() == opcao5 && evento.getSource() == opcao3) {
resposta = numero + (numero * 30) / 100;
}
} catch (NumberFormatException erro) {
texto2.setText("Erro");
return;
}
texto2.setText(String.valueOf(resposta));
}
}