Размещение элементов на 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(); } }); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д