2012-11-02 1 views
0
아래

은 내가 드로잉 클래스에 대해 가지고있는 코드입니다. iv는 화면에 3 개의 도형을 만드는 법을 가르쳐 준 문서를 찾고있었습니다.advice on JPanel - Drawing Area & listeners

저는 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; 
} 

} 

답변

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. 
}