Graphics2D オブジェクトの BasicStroke を 1 以外に変更すると、起動時に JPanel の中央に何も描画されません。
これは、JFrame 上にある JPanel です。これは私のプロジェクトの基本的な考え方ですが、すべてではありません。
public void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
if(this.centered){
this.myShape.setCenterX(this.getWidth()/2);
this.myShape.setCenterY(this.getHeight()/2);
}
g2.setStroke(new BasicStroke(3)); //new BasicStroke(1) works fine
g2.draw(this.myShape);
}
myShape をクリックしてドラッグすると、myShape はすぐに中央にジャンプします。しかし、最初にコンパイルして実行すると、ストロークが 1 でない場合、paintComponent() は画面の中央から約 1 センチ上にペイントします。
センタリングの仕方に問題がありますか?MyShape クラスを定義したので、エラーが発生する可能性があります。中心から描画点までの距離は、JPanel と JFrame の上部の間のスペースでしょうか? どうすれば修正できますか?
編集:写真を追加しました
http://s21.postimage.org/dfpmz73et/Untitled_1.png 最初の形状は、私が望む場所にあります。他の2つは、私が望む場所の上にあります。しかし、ストロークのサイズに関係なく、中心からの変位は同じようです。