안녕하세요, 저는 자바로 사용자 정의 도형을 만들려고 노력하고 있습니다. 그리고 어떤 이유로 그것을 캔버스에 페인트하지 않습니다.그래픽을 Java로 그리지 않습니다.
가 나는 클래스를 만들었습니다 : 이것은 잘 작동
private void initComponents() {
createMenu();
createToolBar();
createCenterPanel();
//createCanvas();
}
private void createCanvas() {
//c = new Canvas();
//c.setBackground(Color.white);
// this.add(c);
add(new MyCircleCanvas());
}
:
public class MyCircleCanvas extends JComponent{
private void doDrawing(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
g2d.setColor(new Color(150, 150, 150));
//g2d.fillRect(30, 20, 50, 50);
//g2d.fillRect(120, 20, 90, 60);
//g2d.fillRoundRect(250, 20, 70, 60, 25, 25);
//g2d.fill(new Ellipse2D.Double(10, 100, 80, 100));
//g2d.fillArc(120, 130, 110, 100, 5, 150);
g2d.fillOval(270, 130, 50, 50);
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
doDrawing(g);
}
}
그런 다음 내 JFrame의에 내가이 클래스를 호출합니다. 하지만 JButton의 ActionListener에서
createCanvas()
메서드를 호출하려고하면 원하는 모양이 만들어지지 않습니다. 어떤 제안 ???
은'createCanvas는() '메서드를 대신 호출해야한다'drawShape()'이미이 캔버스를 사용 GUI에 추가되었습니다. 더 나은 도움을 받으려면 [MCVE] (http://stackoverflow.com/help/mcve) (최소 완성 입증 가능 사례) 또는 [SSCCE] (http://www.sscce.org/) (간략히, 자체 포함 , 올바른 예). –
캔버스에 새 MyCircleCanvas()를 추가하고 사각형을 가져 오는 방법은 무엇입니까? –