У меня есть код, который генерирует JPanel, который должен работать как в среде Mac OSX, так и в среде Windows. Я хотел бы нарисовать серию прямоугольников, которые обрамляют область отображения JPanel. Однако область отображения JPanels отличается в двух средах. На приведенной ниже схеме Mac JPanel находится слева, а Windows JPanel - справа.
Есть ли свойство, которое ссылается на область отображения JPanel, а не на его размер?
Два JPanel на диаграмме были сделаны с одинаковым кодом. В обоих случаях у меня есть следующая команда:
setSize(400, 400);
А в переопределении paintComponent крайний прямоугольник (обрезанный по вертикали, но только по горизонтали для окон) рисуется следующим образом:
g2.drawRect(0, 0, 399, 399);
(Внутренние прямоугольники смещены на 4 пикселя и меняются по цвету. Это не совсем то, что я надеюсь нарисовать, но это иллюстрирует проблему.)
Я мог бы вручную определить необходимые корректировки и создать отдельные константы для двух сред, но мне интересно, есть ли что-то, что я пропустил в Swing, где можно получить размер экрана для данной JPanel. Если такая функция или свойство существует, их использование будет более понятным и гибким, а также будет обеспечиваться хеджирование от JPanels, которым присвоены различные размеры строки заголовка или параметры заполнения.