プレイヤーが駒をドラッグ アンド ドロップできる単純な Java Swing GUI チェス盤を作成しています。問題は、フレームの周囲の境界線 (上部にタイトル、最大化/最小化/閉じるボタンなど) があるため、座標が歪んでいることです。(0, 0) はフレームの左上隅です。フレーム、つまり X ボタンの少し上ですが、GUI はタイトル バーのすぐ下から構築を開始するため、GUI は座標と一致せず、本来の方法で動作しません。さらに、フレームのサイズをたとえば 100 x 100 に設定すると、フレームが境界線を補正しないため、GUI の下部と右側の一部が切り取られます。アプレットとして実行すると、この問題は発生しませんが、実行したくありません。
sscce:
import java.awt.Point;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
public class class1 extends JFrame{
public class1(){
addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent evt){
System.out.print(evt.getPoint());
}
});
}
public static void main(String[] args){
class1 c = new class1();
c.setTitle("Test");
c.setSize(320, 320);
c.setLocationRelativeTo(null);
c.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
c.setVisible(true);
}
}