0

以下は、私が現在描画クラス用に持っているコードです。ivは、画面上に3つの形状を作成する方法を教えてくれるドキュメントを探しています。

私はjframeを持っており、形状を選択するためのメニューがあります(以下を参照)。

if (clickedMenu.getText().equals("Square")){                    
value = pane.returnslider();
shape = new ASquare(value);

だから私の質問は:スライダーの値に応じてサイズが変わる私のJframeに表示される2Dの正方形を作成するために以下のクラスを編集するにはどうすればよいですか?

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package assignment;

import java.awt.Graphics;

/**
 *
 * @author Steven
 */
public class MyDrawing extends javax.swing.JPanel {

/**
 * Creates new form MyDrawing
 */
 @Override public void paintComponent(Graphics g) {
     super.paintComponent(g);    // paints background


  }   
}

私の質問に答えるのに役立つかもしれない私のjpanelからのいくつかのコード:

public class MyChangeAction implements ChangeListener {

    //complete code here
    @Override
    public void stateChanged(ChangeEvent ce) {
        double value = slider.getValue();
        String str = Double.toString(value);
        sliderLabel.setText(str);
        DecimalFormat df = new DecimalFormat("0.0");

        boundary_length.setText("" +     df.format(MyFrame.shape.computeBoundaryLength(value)));
        area.setText("" + df.format(MyFrame.shape.computeArea(value)));
    }
} // end class

public double returnslider() {
    return slider.getValue();
}

私の正方形のクラス:

package assignment;

import java.awt.event.ActionListener;

/**
 *
 * @author b00560806
 */
public class ASquare extends MyShape {

double value;

public ASquare(double value) {
    this.value = value;
}


@Override
public double computeBoundaryLength(double Length) 
{
    thelength=(4*Length);
    return thelength;
}

@Override
public double computeArea(double Length) 
{
    thearea=(Length*Length);
    return thearea;
}

}
4

1 に答える 1

1

これを試して:

@Override 
public void paintComponent(Graphics g) {
    super.paintComponent(g);    // paints background

    Graphics2D g2 = (Graphics2D)g;
    g2.setStroke(new Stroke((int)returnslider));
    // rest of drawing.
}  
于 2012-11-02T19:06:09.930 に答える