paintComponent()
画面にいくつかのものを描画するJPanelのメソッドをオーバーライドしています。
これはどのように見えるかです:
次のコードを使用して、クリッピング領域を設定しています。これは、エッジを湾曲させることができるようにするためです。
RoundRectangle2D r = new RoundRectangle2D.Double(0, 0, getWidth(), getHeight(), 100, 150);
g.setClip(r);
明らかに、ウィンドウの右側に問題があります。さらに調べてみると、JPanelのgetWidth()
方法では正しい数値が報告されていないことがわかりました。通常、少しずれています。例えば:
Width = 500, getWidth() = 492
Width = 1000, getWidth() = 992
Width = 100, getWidth() = 192
Width = 350, getWidth() = 342
Width = 600, getWidth() = 592
私の質問は、なぜそれが一貫して間違っているのかということです。そして、なぜgetHeight()
正しいのですか?
実際の幅を取得するプログラム的な方法がない場合は、単に8を追加する必要があります