Jframe - звертаємо, розгортаємо і закриваємо, java swing і інша джава

Як кожне нормальне вікно, JFrame має кнопки для управління розмірами вікна, а також для його закриття. Ці кнопки розташовуються в правому верхньому куті заголовка вікна JFrame. Тут є кнопка мінімізації вікна, при натисканні на яку вікно згортається. Є кнопка максимізації розмірів вікна, коли JFrame розгортається на весь екран. Як тільки вікно розгорнуте, з'являється кнопка повернення до «нормального» розміру вікна до розгортання. Ну і остання кнопка - це закриття вікна. Цікаво те, що для виконання цих завдань розробник може використовувати спеціальні методи JFrame. Розглянемо, як можна згортати, розгортати і закривати вікно, використовуючи ці методи.







Для того, щоб згорнути вікно, використовується метод setState з параметром JFrame.ICONIFIED. Щоб розгорнути вікно на весь дисплей викликається метод setExtendedState з параметром JFrame.MAXIMIZED_BOTH. Для відновлення нормального розміру після того, як вікно було розгорнуто, викликаємо все той же setExtendedState, але тільки з параметром JFrame.NORMAL. Далі в разі, якщо буде потрібно приховати вікно, використовуємо setVisible з параметром false. Якщо вікно, яке ми хочемо приховати, є головним вікном додатка, то при приховуванні вікна потрібно здійснити вихід із програми. Наприклад, у нас є пункт головного меню «Вихід», при виборі якого потрібно вийти з програми, то тоді можна відразу викликати System.exit (0).







Ну і для демонстрації вищеописаних методів пропоную код додатка, зовнішній вигляд якого представлений на малюнку.

import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class TestFrame

public static void createGUI () JFrame.setDefaultLookAndFeelDecorated (true);
final JFrame frame = new JFrame ( «Test frame»);

JPanel panel = new JPanel ();
panel.setLayout (new FlowLayout ());

JButton minButton = new JButton ( «Minimize»);
minButton.addActionListener (new ActionListener () public void actionPerformed (ActionEvent e) frame.setState (JFrame.ICONIFIED);
>
>);
panel.add (minButton);

JButton maxButton = new JButton ( «Maximize»);
maxButton.addActionListener (new ActionListener () public void actionPerformed (ActionEvent e) frame.setExtendedState (JFrame.MAXIMIZED_BOTH);
>
>);
panel.add (maxButton);

JButton normalButton = new JButton ( «Normal»);
normalButton.addActionListener (new ActionListener () public void actionPerformed (ActionEvent e) frame.setExtendedState (JFrame.NORMAL);
>
>);
panel.add (normalButton);

JButton exitButton = new JButton ( «Exit»);
exitButton.addActionListener (new ActionListener () public void actionPerformed (ActionEvent e) frame.setVisible (false);
System.exit (0);
>
>);
panel.add (exitButton);

frame.getContentPane (). add (panel);
frame.setPreferredSize (new Dimension (400, 80));

frame.pack ();
frame.setLocationRelativeTo (null);
frame.setVisible (true);
>

public static void main (String [] args) javax.swing.SwingUtilities.invokeLater (new Runnable () public void run () createGUI ();
>
>);
>
>







Схожі статті