Kalkulator średniego czasu... błąd.

0

Cześć, formalności za sobą. Zacznę od tego że jave dopiero poznaję jako kolejny język programowanie. Ale do rzeczy, napisałem sobie program do liczenia średniego czasu przebytej trasy (do potrzeb kolarskich, ale mniejsza). Wszystko działa dobrze, jednak, nie mogę wyświetlić wyniku w Double, bo pojawia się błąd:

The method parseDouble(String) in the type Double is not applicable for the arguments (double)

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.math.BigDecimal;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;


public class averageP extends JFrame implements ActionListener
{

	private JLabel SP, PD, Czas;
	private JTextField SPT, PDT, CzasT;
	private JButton kon;
	double sp, pd;
	double czas;
	
	
	public averageP()
	
	{
		setSize(300,200);
		setTitle("Kalkulator średniego czasu!");
		setLayout(null);
		
		// JLabel@@@@@@@@@@@
		
		SP = new JLabel("Średnia prędkość:");
		SP.setBounds(20, 20, 110, 20);
		add(SP);
		
		PD = new JLabel("Przebyty dystans:");
		PD.setBounds(20,50,110,20);
		add(PD);
		
		Czas = new JLabel("W czasie:");
		Czas.setBounds(20, 110, 70, 20);
		add(Czas);
		
		// JTextField@@@@@@@@
		
		SPT = new JTextField("");
		SPT.setBounds(130, 20, 70, 20);
		add(SPT);
		
		PDT = new JTextField("");
		PDT.setBounds(130, 50, 70, 20);
		add(PDT);
		
		CzasT = new JTextField("");
		CzasT.setBounds(130, 110, 70, 20);
		add(CzasT);
		
		// JButton@@@@@@
		
		kon = new JButton ("Konwertuj");
		kon.setBounds(20,80,105,20);
		add(kon);
		kon.addActionListener(this);
	}
	
	@Override
	public void actionPerformed(ActionEvent e)
	{
		Object z = e.getSource();
		
		if (z==kon)
		{
			sp = Integer.parseInt(SPT.getText());
	         pd = Integer.parseInt(PDT.getText());
	         double czas = pd/sp;
	         CzasT.setText(Integer.toString(czas));
		}
	}



	public static void main(String[] args)
	{
		averageP aplikacja = new averageP();
		aplikacja.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		aplikacja.setVisible(true);
		
		
	}

}

Będę wdzięczny za wszelkie wskazówki.

0

cały kod wkleiłeś? bo treść błędu mówi o tym, że do Double.parseDouble() jako argument podałeś double zamiast string, ale nie masz w podanym kodzie wywołania tej metody.
każdy kompilator przy znalezieniu błędu podaje numer linijki, a środowisko programistyczne takie linijki podkreśla/podświetla.

0

W zasadzie już wiem co powodowało ten problem.

Załączam poprawną część która miała błąd. Przeszukałem dokumentacje javy i znalazłem problem.

sp = Double.parseDouble(SPT.getText());
			pd = Double.parseDouble(PDT.getText());
	         czas = pd/sp;
	         czas=new BigDecimal(czas).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
	         CzasT.setText(String.valueOf(czas));
0

To na przyszłość - Double to nie to samo co double - Pierwsze jest klasą opakowującą double, a drugie jest typem prostym podwójnej pecyzji. (tak tak wielkość liter ma znaczenie - eclipse i netbeans też o tym wie)
Skoro sam stwierdzasz też, że zaczynasz z Javą, to czemu na tym dziale a nie w Newbee ??

1 użytkowników online, w tym zalogowanych: 0, gości: 1