Размещение элементов на JFrame - Java
Формулировка задачи:
Подскажите пожалуйста, какой параметр необходимо поменять чтобы элементы на фрейме не зависели друг от друга? К примеру, если я хочу поставить label на label, или кнопку поместить на картинку. Ибо когда пытаюсь переместить, элементы сами двигаются, и при этом меняют размер формы. В интернете нашел что то про Layout но то ли это? И если да, то как его изменить?
Решение задачи: «Размещение элементов на JFrame»
textual
Листинг программы
- import javax.swing.*;
- import java.awt.Color;
- import java.awt.Dimension;
- /*
- * Класс главного окна
- * */
- public class MainFrame extends JFrame {
- //Конструктор главного окна
- public MainFrame() {
- setTitle("Главное окно");
- //Устанавливаем размеры главного окна
- setSize(400, 500);
- //Создаем объект панели, на котором будет отображаться кнопка
- JPanel panel = new JPanel();
- //Добавляем BoxLayout
- panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
- //Создаем label1
- JLabel label1 = new JLabel("Hello 1");
- //Делаем видимым заливку фона
- label1.setOpaque(true);
- //Устанавливаем фон зеленым
- label1.setBackground(Color.green);
- //Устанавливаем максимальный размер label1
- label1.setMaximumSize(new Dimension(300, 300));
- //Добавляем BoxLayout
- label1.setLayout(new BoxLayout(label1, BoxLayout.Y_AXIS));
- //Создаем label2
- JLabel label2 = new JLabel("Hello 2");
- //Выравниваем label2 по центру оси X
- label2.setAlignmentX(JComponent.CENTER_ALIGNMENT);
- //Устанавливаем минимальный размер
- label2.setMinimumSize(new Dimension(200, 200));
- //Устанавливаем максимальный размер
- label2.setMaximumSize(new Dimension(200, 50));
- //Делаем видимым фон
- label2.setOpaque(true);
- //Устанавливаем фон красным
- label2.setBackground(Color.red);
- //Добавляем label2 в label1
- label1.add(label2);
- //Добавляем label1 в panel
- panel.add(label1);
- //Дабавляем панель на главное окно
- add(panel);
- //Делаем окно по центру
- setLocationRelativeTo(null);
- //Делаем минимальные размер окна
- setMinimumSize(new Dimension(350, 350));
- //Делаем видимым главное окно
- setVisible(true);
- }
- public static void main(String[] args)
- {
- //Запускаем главное окно
- SwingUtilities.invokeLater(new Runnable() {
- public void run() {
- new MainFrame();
- }
- });
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д