我试图获取我的 jslider 的值并输入它,以便它是从我的第一段代码中创建的 if 语句创建的每个形状的边界长度和面积的值,然后用答案更新我的 2 个 jtextfields到边界长度和面积,关于如何做到这一点的任何提示?
public class MyFrame extends javax.swing.JFrame {
    public MyFrame() {
        // Create the menu
        JMenuBar topMenu = new JMenuBar();
        this.setJMenuBar(topMenu);
        //create the menu button "shapes"
        JMenu shapes = new JMenu("Shapes");
        topMenu.add(shapes);
        //Create the 3 shapes for the menu
        JMenuItem square = new JMenuItem("Square");
        square.addActionListener(new ShapeAction());
        JMenuItem circle = new JMenuItem("Circle");      
        circle.addActionListener(new ShapeAction());
        JMenuItem triangle = new JMenuItem("Triangle");
        triangle.addActionListener(new ShapeAction());
        //add shapes to menu
        shapes.add(circle);
        shapes.add(triangle);
        shapes.add(square);
        //add the menu
        setJMenuBar(topMenu);
        MyControlPanel pane = new MyControlPanel();
        getContentPane().add(pane);
        this.add(pane);
    }
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        // <snip>
        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                new MyFrame().setVisible(true);
                }
                });
}
        class ShapeAction implements ActionListener{
            public void actionPerformed(ActionEvent e){
                JMenuItem clickedMenu = (JMenuItem)e.getSource();
                if (clickedMenu.getText().equals("Square")){
                    //implement abstract methods                
                    MyShape aSquare = new ASquare();
                }
                else if (clickedMenu.getText().equals("Circle")){ 
                    //implement abstract methods
                    MyShape ACircle = new ACircle();
                }
                else if (clickedMenu.getText().equals("Triangle")){ 
                    //implement abstract methods
                    MyShape ATriangle = new ATriangle();
                }
            }          
        }
    }
package assignment;
//import java.awt.FlowLayout;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSlider;
import javax.swing.JTextField;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
public class MyControlPanel extends javax.swing.JPanel {
JSlider slider;
JLabel sliderLabel;
JLabel sliderdimension;
JLabel blank;
JLabel dl;
JLabel area1;
/**
 * Creates new form MyControlPanel
 */
public MyControlPanel() {
    slider = new JSlider();
    slider.setValue(50);
    slider.addChangeListener(new MyChangeAction());
    slider.setMajorTickSpacing(10);
    slider.setPaintLabels(true);
    slider.setPaintTicks(true);
    slider.setBounds(300, 50, 100, 50);
    sliderLabel = new JLabel("50");
    blank = new JLabel("     ");
    sliderdimension = new JLabel("Shape Dimension:");
    JTextField boundary_length = new JTextField("Boundary Length");
    JTextField area = new JTextField("Area");
    dl = new JLabel("Boundary Length =");
    area1 = new JLabel("Area =");
    setLayout(new BorderLayout());
    JPanel sliderPanel = new JPanel();
    sliderPanel.setLayout(new FlowLayout(FlowLayout.CENTER, 10, 0));
    sliderPanel.add(sliderdimension);
    sliderPanel.add(sliderLabel);
    sliderPanel.add(slider);
    sliderPanel.add(dl);
    sliderPanel.add(boundary_length);
    sliderPanel.add(area1);
    sliderPanel.add(area);
    this.add(sliderPanel, BorderLayout.PAGE_END);
}
/**
 * This method is called from within the constructor to initialize the form.
 * WARNING: Do NOT modify this code. The content of this method is always
 * regenerated by the Form Editor.
 */
// <editor-fold defaultstate="collapsed" desc="Generated Code">                          
private void initComponents() {
    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
    this.setLayout(layout);
    layout.setHorizontalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGap(0, 400, Short.MAX_VALUE)
    );
    layout.setVerticalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGap(0, 300, Short.MAX_VALUE)
    );
}// </editor-fold>                        
// Variables declaration - do not modify                     
// End of variables declaration                   
public class MyChangeAction implements ChangeListener {
    //complete code here
    public void stateChanged(ChangeEvent ce) {
        int value = slider.getValue();
        String str = Integer.toString(value);
        sliderLabel.setText(str);
    }
} // end class
    }
package assignment;
public abstract class MyShape
 {
double thelength;
double thearea;
public abstract double computeBoundaryLength(double Length);
public abstract double computeArea (double Length);
 }
package assignment;
public class ACircle extends MyShape {
@Override
public double computeBoundaryLength(double Length) 
{
    thelength=(2*Length*Math.PI);
return thelength;
}
@Override
public double computeArea(double Length) 
{
    thearea=(Length*Length*Math.PI);
    return thearea;
}
}