Пытаюсь добится того, чтобы дочерний элемент нарисовал рамку с небольшим отступом от края окна, но получить размер окна в случае когда он задается через setExtendedState() не получается. Может быть есть более удачная альтернатива?
public class MainProc extends JFrame
{
MainProc()
{
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setExtendedState(JFrame.MAXIMIZED_BOTH);
System.out.print("Height: " + this.getHeight() + " Width: " + this.getWidth());
Area gArea = new Area();
Dimension dim = new Dimension(this.getHeight() - 10, this.getWidth() - 10);
gArea.setPreferredSize(dim);
add(gArea);
setLayout(new FlowLayout());
setVisible(true);
}
public static void main(String Args[])
{
new MainProc();
}
}
class Area extends JLabel
{
Area()
{
setBorder(BorderFactory.createLineBorder(Color.BLACK));
}
}
Вот это решение немного проще и более гибкое
public class MainProc extends JFrame {
MainProc() {
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setExtendedState(JFrame.MAXIMIZED_BOTH);
BorderLayout layout = new BorderLayout();
setLayout(layout);
JPanel panel = new JPanel();
panel.setBorder(
new CompoundBorder(
new EmptyBorder(10,10,10,10),
new LineBorder(Color.black, 1)
)
);
add(panel, BorderLayout.CENTER);
// остальные компоненты добавляйте в panel
setVisible(true);
}
public static void main(String Args[]) {
new MainProc();
}
}
Вот такой вариант я нашел чтобы решить задачу, на мой взгляд он не самый удачный, пускай он и решает задачу.
public class MainProc extends JFrame
{
MainProc()
{
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setExtendedState(JFrame.MAXIMIZED_BOTH);
System.out.print("Height: " + this.getHeight() + " Width: " + this.getWidth());
Area gArea = new Area();
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
dim.height -= 30;
dim.width -= 10;
gArea.setPreferredSize(dim);
add(gArea);
setLayout(new FlowLayout());
setVisible(true);
}
public static void main(String Args[])
{
new MainProc();
}
}
class Area extends JLabel
{
Area()
{
setBorder(BorderFactory.createLineBorder(Color.BLACK));
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Необходимо распределить работу на n часовВыполнять работу необходимо пачками
Есть кодНа выводе получается последовательное возведение 2 в степень (10 раз)
В поисках элегантного решения задался вопросом: Каа преобразовать список объектов в массив с подсчетом количества повторенийТ