Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

インターフェースShapeについて

Graphics2Dにdraw(Shape shape)と言うありますが、
長い直線を描画したくて
Line2D.Double line = Line2D.Double(0, 0, Integer.MAX_VALUE, Integer.MAX_VALUE);
g2.draw(line);
とすると、画面に描画されません。

g.drawLine( 0, 0, Integer.MAX_VALUE, Integer.MAX_VALUE );
このように直接書くと描画されるのでShapeとはの描画のされ方が違うのでしょうか。
どなたか教えてください。

以下、ソースです。
import 省略
public class TestPanel extends JPanel
{
  public void paintComponent(Graphics graphics)
  {
    Graphics2D g2 = (Graphics2D)graphics;
    Line2D.Double line = new Line2D.Double(0, 0, Integer.MAX_VALUE, Integer.MAX_VALUE);
    // 描画されない
    g2.draw( line );
    // 描画される
    g2.drawLine( 0, 0, Integer.MAX_VALUE, Integer.MAX_VALUE );
  }
  
  public static void main(String args[])
  {
    TestPanel test = new TestPanel();
    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
    frame.getContentPane().add(test);
    frame.setSize(300, 300);
    frame.setVisible(true);
  }
}

0

回答

89323

閲覧

0件の回答

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。