Olá amigos do GUJ, fiz esse exercício de um livro de JAVA, porém não estou conseguindo obter o resultado correto na JTextField t2.
O valor deveria ser 950, ou seja desconto de 5% em um produto que custa R$ 1.000.
Mas está gerando resultado igual ao valor do produto, ou seja 1.000.
Segue o código, agradeço a ajuda dos amigos.
package aprendendo;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;
public class Exercicio06 extends JFrame implements ListSelectionListener, ActionListener{
JLabel label1, label2, label3;
JTextField t1, t2;
JButton b1,b2;
DefaultListModel listModel;
JList lista;
public static void main(String args[])
{
JFrame janela = new Exercicio06();
janela.setUndecorated(true);
janela.getRootPane().setWindowDecorationStyle(JRootPane.FRAME);
janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
janela.setVisible(true);
}
Exercicio06()
{
setTitle("Cálculo do preço final");
setBounds(50,50,380,120);
label1 = new JLabel("Entre com o valor da venda:");
label1.setForeground(Color.black);
label2 = new JLabel("Escolha a forma de pagto:");
label2.setForeground(Color.black);
label3 = new JLabel("Preço final a pagar:");
label3.setForeground(Color.black);
b1 = new JButton("Calcular");
b1.addActionListener(this);
b2 = new JButton("Limpar");
b2.addActionListener(this);
t1 = new JTextField();
t2 = new JTextField();
t2.setEditable(false);
listModel = new DefaultListModel();
listModel.addElement("Dinheiro");
listModel.addElement("Cheque");
listModel.addElement("Cartão");
lista = new JList(listModel);
lista.addListSelectionListener(this); // registra a lista
JScrollPane painel = new JScrollPane(lista);
getContentPane().setLayout(new GridLayout(4,2));
add(label1); add(t1);
add(label2); add(painel);
add(label3); add(t2);
add(b1); add(b2);
}
public void actionPerformed(ActionEvent e) /* método para reconhecer qual botão
foi clicado pelo usuário*/
{
if(e.getSource()==b2)
{
t1.setText(""); t2.setText("");
return;
}
if(e.getSource()==b1)
{
if(lista.getSelectedValue() != null)
{
int index = lista.getSelectedIndex();
double venda, desconto, precoFinal, acrescimo;
try
{
venda = Double.parseDouble(t1.getText());
}
catch(NumberFormatException erro)
{
t2.setText("Erro");
return;
}
if(index == 0)
{
desconto = 5/100 * venda;
precoFinal = venda - desconto;
}
else if(index == 1)
{
acrescimo = 5/100 * venda;
precoFinal = venda + acrescimo;
}
else
{
acrescimo = 10/100 * venda;
precoFinal = venda + acrescimo;
}
t2.setText("" + precoFinal);
}
}
}
public void valueChanged(ListSelectionEvent e)
{
}
}
