曲線を宣言するコード行は次のとおりです。
QuadCurve2D.Double curve = new QuadCurve2D.Double(50,100,100,170,150,100);
この曲線を描くためにどのコードを使用できますか? 私は次のようなものを試しました:
g.draw(curve);
しかし、明らかにそれはうまくいきませんでした。助言がありますか?
曲線を宣言するコード行は次のとおりです。
QuadCurve2D.Double curve = new QuadCurve2D.Double(50,100,100,170,150,100);
この曲線を描くためにどのコードを使用できますか? 私は次のようなものを試しました:
g.draw(curve);
しかし、明らかにそれはうまくいきませんでした。助言がありますか?
ここで説明していると思われることの最小限のテストケースを作成しました。このプログラムは動作しますが、あなたが作業しているコードが見えない限り、私はあなたを助けることはできません.
import java.awt.geom.*;
import java.awt.*;
import javax.swing.*;
public class CurveDraw extends JFrame {
public static void main(String[] args) {
CurveDraw frame = new CurveDraw();
frame.setVisible(true);
}
public CurveDraw() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400,400);
}
public void paint(Graphics g) {
QuadCurve2D.Double curve = new QuadCurve2D.Double(50,100,100,170,150,100);
((Graphics2D)g).draw(curve);
}
}
私にとってはうまくいきます...
public class PaintQuad {
public static void main(String[] args) {
new PaintQuad();
}
public PaintQuad() {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException ex) {
} catch (InstantiationException ex) {
} catch (IllegalAccessException ex) {
} catch (UnsupportedLookAndFeelException ex) {
}
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new BorderLayout());
frame.add(new PaintMyQuad());
frame.setSize(200, 200);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
public class PaintMyQuad extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g.create();
QuadCurve2D.Double curve = new QuadCurve2D.Double(50,100,100,170,150,100);
g2d.setColor(Color.RED);
g2d.draw(curve);
}
}
}
2つのことが思い浮かびます。