Proszę o pomoc

Chciałbym aby ktoś pomógł mi i sprawił aby adhoc przepisywały się wartości z pola apletu pktX do pola predkoscX poprzez metode osX(double,double,string,string,string) . Mam spory problem z dzialaniem propertycomandlistenera.

Bardzo dziękuję za pomoc i wszelkie uwagi także krytyczne. :)

package ploter;
import java.awt.;
import java.awt.event.
;
import java.lang.String.;
import javax.swing.
;
import javax.swing.event.;
import javax.swing.text.
;

import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeEvent;

import java.util.ArrayList;
import java.util.List;
import java.text.*;

public class Main extends JPanel implements PropertyChangeListener {

private double lpunktow = 8 ;
private double predkosc ;
private String pktX ;
private String pktY ;
private String pktZ ;


private JLabel lpunktowLabel;
private JLabel predkoscLabel;
private JLabel pktXLabel;
private JLabel pktYLabel;
private JLabel pktZLabel;
private JLabel predkoscXLabel;
private JLabel predkoscYLabel;
private JLabel predkoscZLabel;

private static String lpunktowString = "Liczba punktow: ";
private static String predkoscString = "Prędkość max m/s: ";
private static String pktXString = "Punkty X: ";
private static String pktYString = "Punkty Y: ";
private static String pktZString = "Punkty Z: ";
private static String predkoscXString = "Prędkość X: ";
private static String predkoscYString = "Prędkość Y: ";
private static String predkoscZString = "Prędkość Z: ";

private JFormattedTextField lpunktowField;
private JFormattedTextField predkoscField;
private JTextField pktXField;
private JTextField pktYField;
private JTextField pktZField;
private JTextField predkoscXField;
private JTextField predkoscYField;
private JTextField predkoscZField;

private NumberFormat lpunktowFormat;
private NumberFormat predkoscFormat;
private NumberFormat pktXFormat;
private NumberFormat pktYFormat;
private NumberFormat pktZFormat;
private NumberFormat predkoscXFormat;
private NumberFormat predkoscYFormat;
private NumberFormat predkoscZFormat;

public Main() {
    super(new BorderLayout());
    //setUpFormats();
    String predkoscX = osX(lpunktow,predkosc,pktX,pktY,pktZ);
    String predkoscY = osY(lpunktow,predkosc,pktX,pktY,pktZ);
    String predkoscZ = osZ(lpunktow,predkosc,pktX,pktY,pktZ);


    lpunktowLabel = new JLabel(lpunktowString);
    predkoscLabel = new JLabel(predkoscString);
    pktXLabel = new JLabel(pktXString);
    pktYLabel = new JLabel(pktYString);
    pktZLabel = new JLabel(pktZString);
    predkoscXLabel = new JLabel(predkoscXString);
    predkoscYLabel = new JLabel(predkoscYString);
    predkoscZLabel = new JLabel(predkoscZString);

    lpunktowField = new JFormattedTextField(lpunktowFormat);
    lpunktowField.setValue(new Double(lpunktow));
    lpunktowField.setColumns(10);
    lpunktowField.addPropertyChangeListener("value", this);

    predkoscField = new JFormattedTextField(predkoscFormat);
    predkoscField.setValue(new Double(predkosc));
    predkoscField.setColumns(10);
    predkoscField.addPropertyChangeListener("value", this);

    pktXField  = new JTextField();
    pktXField.setColumns(10);
    pktXField.setText(pktX);
    pktXField.addPropertyChangeListener("value", this);

    pktYField = new JTextField();
    pktYField.setColumns(10);


    pktZField  = new JTextField();
    pktZField.setColumns(20);
    

    predkoscXField  = new JTextField();
    predkoscXField.setColumns(20);
    predkoscXField.setText(predkoscX);

    predkoscYField  = new JTextField();
    predkoscYField.setColumns(20);

    predkoscZField  = new JTextField();
    predkoscZField.setColumns(20);

    pktZField  = new JTextField();
    pktZField.setColumns(20);


    lpunktowLabel.setLabelFor(lpunktowField);
    predkoscLabel.setLabelFor(predkoscField);
    pktXLabel.setLabelFor(pktXField);
    pktYLabel.setLabelFor(pktYField);
    pktZLabel.setLabelFor(pktZField);
    predkoscXLabel.setLabelFor(predkoscXField);
    predkoscYLabel.setLabelFor(predkoscYField);
    predkoscZLabel.setLabelFor(predkoscZField);

  
    JPanel labelPane = new JPanel(new GridLayout(0,1));
    labelPane.add(lpunktowLabel);
    labelPane.add(predkoscLabel);
    labelPane.add(pktXLabel);
    labelPane.add(pktYLabel);
    labelPane.add(pktZLabel);
    labelPane.add(predkoscXLabel);
    labelPane.add(predkoscYLabel);
    labelPane.add(predkoscZLabel);

    JPanel fieldPane = new JPanel(new GridLayout(0,1));
    fieldPane.add(lpunktowField);
    fieldPane.add(predkoscField);
    fieldPane.add(pktXField);
    fieldPane.add(pktYField);
    fieldPane.add(pktZField);
    fieldPane.add(predkoscXField);
    fieldPane.add(predkoscYField);
    fieldPane.add(predkoscZField);


    setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
    add(labelPane, BorderLayout.CENTER);
    add(fieldPane, BorderLayout.LINE_END);

}

public void propertyChange(PropertyChangeEvent e) {
    Object source = e.getSource();
           if (source == pktXField) {
        pktX = pktXField.getText().toString();
    } else if (source == pktYField) {
        pktY = pktYField.getText();
    } else if (source == pktZField) {
        pktZ = pktZField.getText();
    } else if (source == lpunktowField) {
        lpunktow = ((Number)lpunktowField.getValue()).doubleValue();
    } else if (source == predkoscField) {
        predkosc = ((Number)predkoscField.getValue()).doubleValue();

    }

    String predkoscX = osX(lpunktow, predkosc , pktX, pktY, pktZ);
    String predkoscY = osY(lpunktow, predkosc , pktX, pktY, pktZ);
    String predkoscZ = osZ(lpunktow, predkosc , pktX, pktY, pktZ);
    predkoscXField.setText(predkoscX);
    predkoscYField.setText(predkoscY);
    predkoscZField.setText(predkoscZ);
}

private static void createAndShowGUI() {

    JFrame frame = new JFrame("Ploter");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    frame.add(new Main());

    frame.pack();
    frame.setVisible(true);
}

public static void main(String[] args) {

    SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            
        UIManager.put("swing.boldMetal", Boolean.FALSE);
            createAndShowGUI();
        }
    });
}
String osX(Double lpunktow,Double predkosc, String pktX, String pktY,String pktZ) {
    
     return pktX;
}
    String osY(Double lpunktow,Double predkosc, String pktX, String pktY,String pktZ) {
    
     return pktY;
}
    String osZ(Double lpunktow,Double predkosc, String pktX, String pktY,String pktZ) {
    
     return pktZ;
}

}