Я делаю простую шахматную панель Java Swing GUI, где игрок может перетаскивать фигуры. Проблема состоит в том, что из-за границы вокруг кадра (с надписью вверху, кнопками максимизации/минимизации/закрытия и т. Д.) Координаты сдвигаются - (0, 0) - верхний левый угол кадр, то есть немного выше кнопки X, но GUI начинает строить себя прямо под заголовком, поэтому графический интерфейс не выравнивается с координатами, и все не работает так, как должно. Кроме того, когда я устанавливаю размер фрейма, например, 100 х 100, нижняя часть и часть правой части моего графического интерфейса прерываются, потому что рамка не компенсирует ее границу. Когда я запускаю его как апплет, у меня нет этой проблемы, но я не хочу этого делать. Как я могу либо избавиться от этой границы вокруг моего окна рамки, чтобы я мог просто иметь простой графический интерфейс или правильно настроить координаты?Java 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);
}
}
@ Андрей: У вас есть крошка-загрузка файлов, загруженных там, вероятно, слишком много, чтобы разумно просить доброволец пересмотреть для вас. Можете ли вы сконденсировать свою проблему в одной небольшой программе, достаточно полной, чтобы мы могли ее запустить и увидеть вашу проблему, но достаточно маленькую, чтобы она была размещена непосредственно на этом сайте, [sscce] (http://sscce.org) (пожалуйста, прочитайте ссылку)? –
Я добавил sscce в вопрос. При запуске щелчок в верхнем левом углу GUI дает (зависящую от машины) координату, которая не является (0, 0). Например, для меня это (3, 24). –
@AndrewLatham: см. Править 2 –