Não estou conseguindo enxergar o erro

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)
    {
        
        
    }
}

A divisão de inteiros em Java tem como resultado um inteiro. Assim, 5/100 é igual a 0

Se queres ter valores decimais, tens de usar decimais na operação: 5.0/100 já vai dar o 0.05 que pretendes

Obrigado pmlm não sabia disso. Deu certo aqui. Pode fechar o tópico.