Olá pesoal !
Ainda sou iniciante em JAVA, já postei aqui um dúvida e fui muito bem atendido, espero ser novamente.
Bem, sempre tento resolver os problemas com meus códigos sem precisar perguntar aqui, acredito que assim o aprendizado torna-se mais eficaz. Porém, estou tendo um problemão com um código.
Já fiz todos os exemplos do livro do Sérgio Fuirgeri que trata do pacote Swing. Também já fiz os exercícios, mas deixei esse aqui por último por acreditar que seria mais fácil, mas está dando uns erros que não consigo enxergar a solução, mas que parece de fácil resolução.
O exercício pede para que entremos com um valor em um campo JTextField (t1), selecionar uma forma de pagamento com um elemento JRadioButton e, dependendo da escolha, mostrar o resultado num elemento JTextField (t2). Se a escolha for pagamento em dinheiro, dar 5% de desconto, se for cheque, acréscimo de 5%, se for cartão, acréscimo de 10%.
Bem, o código é o seguinte
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class Exercicio0907 extends JFrame implements ItemListener
{
float n1 = 0, result = 0;
JLabel label1, label2;
JTextField t1,t2;
JRadioButton radio1,radio2,radio3;
JPanel p1,p2,p3;
ButtonGroup radiogroup;
public static void main (String args[])
{
JFrame janela = new Exercicio0907();
janela.setUndecorated(true);
janela.getRootPane().setWindowDecorationStyle(JRootPane.FRAME);
janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
janela.setVisible(true);
}
Exercicio0907()
{
setTitle("Cálculo do Preço Final");
setBounds(230,50,340,120);
getContentPane().setLayout(new FlowLayout(FlowLayout.CENTER));
label1 = new JLabel("Digite o valor da venda");
label2 = new JLabel("Preço final de venda");
t1 = new JTextField(); t1 = new JTextField();
p1 = new JPanel(); p2 = new JPanel(); p3 = new JPanel();
radio1 = new JRadioButton("Dinheiro");
radio2 = new JRadioButton("Cheque");
radio3 = new JRadioButton("Cartão");
radiogroup = new ButtonGroup();
radiogroup.add(radio1); radio1.addItemListener(this);
radiogroup.add(radio2); radio2.addItemListener(this);
radiogroup.add(radio3); radio3.addItemListener(this);
p1.setLayout(new GridLayout(1,2));
p1.setBackground(new Color(65,105,225));
p2.setLayout(new GridLayout(1,3));
p2.setBackground(new Color(0,255,225));
p3.setLayout(new GridLayout(1,2));
p3.setBackground(new Color(0,255,255));
p1.add(label1); p1.add(t1);
p2.add(radio1); p2.add(radio2); p2.add(radio3);
p3.add(label2); p3.add(t2);
getContentPane().add(p1); getContentPane().add(p2);
getContentPane().add(p3);
}
public void itemStateChanged(ItemEvent e)
{
if(t1.getText().length()==0) return;
try
{
n1 = Float.parseFloat(t1.getText());
if(e.getSource()==radio1) result = n1*0.95;
if(e.getSource()==radio2) result = n1*1.05;
if(e.getSource()==radio3) result = n1*1.10;
}
catch(NumberFormatException erro)
{
t2.setText("Erro!!"); return;
}
t2.setText("" + result);
}
}
Os erros estão ocorrendo nas linhas 58, 59 e 60 e cada vez que eu tento resolver o problema mudando o código dá um erro diferente.
Agora o erro que está dando é:
[color=red]possible loss of precision[/color]
O estranho é que nas primeiras vezes que tentei compilar dava erros avisando que faltava um parenteses. Aí eu mudava e dava erro dizendo que faltava um ponto e vírgula. Mudava as variáveis n1 e result para Double e dava imcompatible types.
O mais estranho ainda é que esse exercício foi feito baseado num exemplo do próprio livro que funcionou muito bem.
Bem, e então, algum anjo aí pode me dar essa mão? Sei que a dúvida é básica, sei que o problema está fácil de ser resolvido, mas já tentei de todas as formas resolvê-lo e não consegui.
Se possível também coloquem um link aí onde eu possa pegar uma listagem dos erros em JAVA e suas possíveis causas, assim eu poderia estudá-las e não perturbar mais com essas dúvidas por aqui.
Obrigado aí, pessoal.