java swing tutorial container
Цей вичерпний відео-посібник Java Swing пояснює різні компоненти графічного інтерфейсу Swing Framework та пов'язані з ними концепції, такі як JPanel, JFrame, JButton тощо:
Ми використовуємо графічні користувальницькі інтерфейси (зазвичай їх називають графічним інтерфейсом) для створення додатків, які мають візуальний інтерфейс, полегшуючи користувачеві використання програми.
Наявність візуального інтерфейсу для програми робить програму зручною для навігації, ефективнішим використанням елементів керування, а також візуально приваблює користувача.
Swing в основному використовується для створення графічного інтерфейсу для додатків.
=> Завітайте сюди, щоб побачити навчальну серію Java для всіх.
Що ви дізнаєтесь:
- Відео-підручник з Java Swing
- Що таке Java Swing
- Компоненти Java Swing
- Свінг-класи на Java
- Гойдалки проти JavaFX
- Висновок
Відео-підручник з Java Swing
Що таке Java Swing
Java надає багато графічних інтерфейсів, які допомагають нам розробляти різноманітні графічні програми. Ми бачили таку у нашому попередньому підручнику, тобто Абстрактний набір інструментів для вікон або AWT. AWT - одна з найстаріших платформ графічного інтерфейсу в Java, а також залежить від платформи. Ще одним недоліком AWT є його важкі компоненти.
У цьому підручнику ми обговоримо ще одну структуру графічного інтерфейсу на Java, тобто “SWING”. Структура Swing на Java є частиною класів Java Foundation або зазвичай називається JFC. JFC - це API, подібний до MFC (Microsoft Foundation Classes) у C ++. JFC містить Swing, AWT та Java2D.
Свінг-фреймворк в Java побудований поверх фреймворку AWT і може використовуватися для створення графічних додатків так само, як AWT. Але на відміну від AWT, компоненти Swing мають невелику вагу та не залежать від платформи.
Фреймворк Swing повністю написаний на Java. Фреймворк Swing на Java надається за допомогою пакета «javax.swing». Заняття в пакеті javax.swing починаються з букви «J». Тож у пакеті javax.swing ми матимемо такі класи, як JButton, JFrame, JTextField, JTextArea тощо.
Загалом, Swing API має всі елементи управління, визначені в пакеті javax.swing, який присутній у AWT. Тож гойдалка певним чином діє як заміна AWT. Крім того, Swing має різні розширені панелі з вкладками компонентів. Swing API в Java адаптує архітектуру MVC (Model View Controller).
Основними характеристиками цієї архітектури є:
- Дані компонента swing представлені за допомогою Model.
- Він візуально представлений за допомогою подання.
- Компонент контролера архітектури MVC зчитує вхідні дані користувача у поданні, а потім ці зміни передаються даним компонента.
- У кожному компоненті Swing вигляд і контролер поєднані між собою, тоді як модель є окремою. Це надає гойдалці функцію зовнішнього вигляду, що підключається.
Особливості swing API наведені нижче.
- Свінг-компоненти не залежать від платформи.
- API можна розширювати.
- Гойдалки мають невелику вагу. Компоненти swing написані чистою Java, а також компоненти відображаються за допомогою коду Java замість базових системних викликів.
- Swing API надає набір розширених елементів управління, таких як TabbedPane, Tree, Colorpicker, елементи керування таблицями тощо, які багаті на функціонал.
- Елементи управління гойдалками можна легко налаштувати. Це пояснюється тим, що зовнішній вигляд або зовнішній вигляд компонента не залежить від внутрішнього представлення, і, отже, ми можемо налаштувати його так, як хочемо.
- Ми можемо просто змінити значення і таким чином змінити зовнішній вигляд під час роботи.
Компоненти Java Swing
Swing має великий набір компонентів, які ми можемо включити в наші програми та скористатися багатими функціональними можливостями, за допомогою яких ми можемо розробляти високо налаштовані та ефективні графічні програми.
Отже, що таке компонент?
Компонент можна визначити як елемент управління, який може бути представлений візуально і, як правило, незалежний. Він має певну функціональність і представлений як окремий клас в Swing API.
Наприклад, клас JButton в swing API є компонентом кнопки і забезпечує функціональність кнопки.
Один або кілька компонентів утворюють групу, і цю групу можна помістити в “Контейнер”. Контейнер надає простір, в якому ми можемо відображати компоненти, а також керувати їх інтервалами, розташуванням тощо.
У Java контейнери поділяються на два типи, як показано нижче:
Свінг-класи на Java
Ієрархія Swing API в Java показана нижче:
Як видно з наведеної вище ієрархії, ми маємо класи Container - фрейм, діалогове вікно, панель, аплет тощо. Існують також класи Component, похідні від класу JComponent Swing API. Деякі класи, які успадковують від JComponent, це JLabel, JList, JTextBox тощо.
Деякі важливі класи Swing API такі:
- JWindow: Клас JWindow Swing успадковує клас Window безпосередньо. Клас JWindow використовує 'BorderLayout' як макет за замовчуванням.
- JPanel: JPanel є нащадком класу JComponent і знаходиться на подібних лініях до панелі класу AWT і має за замовчуванням макет «FlowLayout».
- JFrame: JFrame походить з класу Frame. Компоненти, додані до фрейму, називаються вмістом фрейму.
- JLabel: Клас JLabel є підкласом JComponent. Він використовується для створення текстових міток у програмі.
- JButton: Функціональність кнопки в Swing забезпечується JButton. Ми можемо пов’язати рядок, піктограму або те й інше з об’єктом JButton.
- JTextField: Клас JTextField надає текстове поле, в якому ми можемо редагувати один рядок тексту.
JFrame в Java
Фрейм, загалом, є контейнером, який може містити інші компоненти, такі як кнопки, мітки, текстові поля тощо. Вікно Фрейму може містити заголовок, межу, а також меню, текстові поля, кнопки та інші компоненти. Додаток повинен містити фрейм, щоб ми могли додавати компоненти всередину нього.
Кадр у Java Swing визначений у класі javax.swing.JFrame. Клас JFrame успадковує клас java.awt.Frame. JFrame схожий на головне вікно програми графічного інтерфейсу за допомогою swing.
Ми можемо створити об'єкт вікна JFrame, використовуючи два підходи:
веб-сайти для завантаження відео YouTube у mp3
# 1) Розширенням класу JFrame
Перший підхід - це створення нового класу для побудови фрейму. Цей клас успадковується від класу JFrame пакета javax.swing.
Наступна програма реалізує цей підхід.
import javax.swing.*; class FrameInherited extends JFrame{ //inherit from JFrame class JFrame f; FrameInherited(){ JButton b=new JButton('JFrame_Button');//create button object b.setBounds(100,50,150, 40); add(b);//add button on frame setSize(300,200); setLayout(null); setVisible(true); } } public class Main { public static void main(String() args) { new FrameInherited(); //create an object of FrameInherited class } }
Вихід:
# 2) Застосовуючи клас JFrame
import javax.swing.*; public class Main { public static void main(String() args) { JFrame f=new JFrame('JFrameInstanceExample');//create a JFrame object JButton b=new JButton('JFrameButton');//create instance of JButton b.setBounds(100,50,150, 40);//dimensions of JButton object f.add(b);//add button in JFrame f.setSize(300,200);//set frame width = 300 and height = 200 f.setLayout(null);//no layout manager specified f.setVisible(true);//make the frame visible } }
Вихід:
У наведеній вище програмі ми створили фрейм з класу JFrame, створивши екземпляр класу JFrame.
JPanel в Java
Панель - це компонент, який міститься всередині вікна кадру. Кадр може мати всередині декількох компонентів однієї панелі, причому кожен компонент панелі має кілька інших компонентів.
Якщо говорити простіше, ми можемо використовувати панелі для розділення кадру. Кожна панель групує кілька інших компонентів всередині неї. Іншими словами, ми використовуємо панелі для організації компонентів всередині кадру.
Клас swing API, який реалізує компонент панелі, - JPanel. Клас JPanel успадковується від JComponent і за замовчуванням має FlowLayout.
Наступна програма демонструє створення контейнера панелі у фреймі за допомогою класів пакунків javax.swing.
import javax.swing.*; class JPanelExample { JPanelExample(){ JFrame frame = new JFrame('Panel Example'); //create a frame JPanel panel = new JPanel(); //Create JPanel Object panel.setBounds(40,70,100,100); //set dimensions for Panel JButton b = new JButton('ButtonInPanel'); //create JButton object b.setBounds(60,50,80,40); //set dimensions for button panel.add(b); //add button to the panel frame.add(panel); //add panel to frame frame.setSize(400,400); frame.setLayout(null); frame.setVisible(true); } } public class Main { public static void main(String() args) { new JPanelExample(); //create an object of FrameInherited class } }
Вихід:
Тут ми маємо Frame. Всередині рами ми створюємо панно. Потім всередині панелі ми створюємо кнопку. Таким чином ми можемо використовувати панель для утримання інших компонентів.
JTextArea в Java
TextArea визначає текстове поле, яке можна редагувати. Він може мати кілька рядків. Класом swing, який визначає текстову область, є JTextArea, і він успадковує клас JTextComponent.
відкритий клас JTextArea розширює JTextComponent
Клас JTextArea містить 4 конструктори, які дозволяють нам створювати текстову область з різними опціями.
- JTextArea (): Конструктор за замовчуванням. Створіть порожню область тексту.
- JTextArea (рядки): Створює текстове поле зі значенням s за замовчуванням.
- JTextArea (int рядок, int стовпець): Створює текстову область із зазначеним рядком x стовпець.
- JTextArea (Рядок s, int рядок, int стовпець): Створює текст are2a із зазначеним рядком x стовпець та значенням за замовчуванням s.
Наступна програма Java демонструє приклад компоненту JTextArea в гойдалці.
import javax.swing.*; class JTextAreaExample { JTextAreaExample(){ JFrame frame= new JFrame(); JTextArea t_area=new JTextArea('JTextArea example'); //create object of JTextArea t_area.setBounds(10,30, 150,100); //set its dimensions frame.add(t_area); //add it to the frame frame.setSize(200,200); frame.setLayout(null); frame.setVisible(true); } } public class Main { public static void main(String() args) { new JTextAreaExample(); //create an object of TextAreaExample class } }
Вихід:
JButton в Java
Кнопка - це компонент, який використовується для створення кнопки, на якій є ім’я чи мітка. В swing класом, який створює позначену кнопку, є JButton. JButton успадковує клас AbstractButton. Ми можемо пов’язати подію ActionListener з кнопкою, щоб змусити її виконати певні дії при натисканні.
Давайте реалізуємо приклад програми для JButton в Java swings.
import javax.swing.*; public class Main { public static void main(String() args) { JFrame frame=new JFrame('JButton Example'); //create JFrame object JButton button=new JButton('Button'); //Create a JButton object button.setBounds(50,50,75,35); //set dimensions for button frame.add(button); //add button to the frame frame.setSize(250,200); frame.setLayout(null); frame.setVisible(true); } }
Вихід:
JList в Java
Список складається з декількох текстових елементів. Користувачі можуть вибрати одночасно один або кілька елементів. Класом, який реалізує список в swing API, є JList. JList є нащадком класу JComponent.
Нижче наведено конструктори класу JList.
- JList (): Конструктор за замовчуванням, який створює порожній список, доступний лише для читання.
- JList (масив () listItem): Створіть JList, який спочатку містить елементи масиву listItem.
- JList (ListModel dataModel): Створює список з елементами із зазначеної моделі dataModel.
Проста демонстрація компонента JList подана нижче.
import javax.swing.*; public class Main { public static void main(String() args) { JFrame frame= new JFrame('JList Example'); //create a list model and add items to it DefaultListModel colors = new DefaultListModel<>(); colors.addElement('Red'); colors.addElement('Green'); colors.addElement('Blue'); //create JList object and add listModel to it JList colorsList = new JList<>(colors); colorsList.setBounds(100,100, 75,50); frame.add(colorsList); //add list to the frame frame.setSize(400,400); frame.setLayout(null); frame.setVisible(true); } }
Вихід:
У наведеній вище програмі ми спочатку визначаємо listModel із кольоровими записами в ньому. Потім ми створюємо об'єкт JList і додаємо до нього listModel. Далі об'єкт JList додається до об'єкта кадру, який потім відображається.
JComboBox на Java
Клас JCombobox показує список варіантів, з яких користувач може вибрати варіант. Вибраний вибір знаходиться вгорі. JComboBox походить від класу JComponent.
Нижче наведено конструктори, надані класом JComboBox:
- JComboBox (): Конструктор за замовчуванням, який створює ComboBox із моделлю даних за замовчуванням.
- JComboBox (Об'єкт () елементи): Цей конструктор створює ComboBox, що має елементи як елементи заданих елементів масиву.
- JComboBox (Векторні елементи): Цей конструктор зчитує елементи заданого вектора і створює ComboBox з цими елементами як його елементами.
Клас JComboBox також надає методи додавання / видалення елементів, додавання ActionListener, ItemListener тощо.
Наступний приклад демонструє реалізацію JComboBox в Java.
import javax.swing.*; class ComboBoxExample { JFrame frame; ComboBoxExample(){ frame=new JFrame('ComboBox Example'); //create a string array String country()={'India','SriLanka','Singapore','Maldives','SeyChelles'}; //create a combobox object with given string array JComboBox countries=new JComboBox(country); countries.setBounds(50, 50,90,20); frame.add(countries); //add it to the frame frame.setLayout(null); frame.setSize(200,300); frame.setVisible(true); } } public class Main { public static void main(String arg()) { new ComboBoxExample(); } }
Вихід:
приклади запитів sql із відповідями pdf
JSlider в Java
Повзунок дозволяє вибрати конкретний діапазон значень. В Java Swing API JSlider - це клас, який використовується для реалізації слайдера.
Нижче наведено конструктори, надані класом JSlider.
- JSlider (): конструктор за замовчуванням, який створює повзунок, що має 50 початковим значенням і діапазоном 0-100.
- JSlider (орієнтація int): Цей конструктор створює повзунок, як і вище, але із заданою орієнтацією. Значення орієнтації може бути як JSlider.HORIZONTAL, так і JSlider.VERTICAL.
- JSlider (int min, int max): Цей конструктор використовується для створення горизонтального повзунка з використанням заданих min та max.
- JSlider (int min, int max, int value): Цей конструктор створює горизонтальний слайдер із заданим значенням min, max та value.
- JSlider (орієнтація int, int min, int max, int value): Цей конструктор створює повзунок із заданою орієнтацією, min, max та значенням.
Наступна програма демонструє JSlider в Java за допомогою галочок. Ця програма також демонструє використання методів, що підтримуються класом JSlider.
import javax.swing.*; class SliderExample extends JFrame { public SliderExample() { //create a slider object JSlider slider = new JSlider(JSlider.HORIZONTAL, 0, 50, 25); //set major and minor ticks for the slider slider.setMinorTickSpacing(2); slider.setMajorTickSpacing(10); slider.setPaintTicks(true); slider.setPaintLabels(true); JPanel panel = new JPanel(); panel.add(slider); //add slider to the panel add(panel); } } public class Main{ public static void main(String s()) { SliderExample frame=new SliderExample(); frame.pack(); frame.setVisible(true); } }
Вихід:
Обробка подій в Java
Подія може бути визначена як зміна стану об'єкта. З точки зору графічного інтерфейсу, подія відбувається, коли кінцевий користувач взаємодіє з компонентами графічного інтерфейсу. Подіями, які запускаються в графічному інтерфейсі, можуть бути натискання кнопки, прокрутка, вибір елементів списку, зміна тексту тощо.
Події, що відбуваються в перерахованому вище графічному інтерфейсі, є переважно подіями переднього плану. Ми також можемо мати деякі фонові події, такі як завершення фонової операції, закінчення таймера тощо.
Обробка подій - це механізм, за допомогою якого здійснюється дія при настанні події. Для цього ми визначаємо метод, який також називається обробником подій, який викликається, коли відбувається подія. Java використовує стандартний механізм, який називається „модель події делегування”, щоб генерувати, а також обробляти події.
Модель події делегування складається з:
# 1) Джерело: Джерелом події є об'єкт. Об'єкт, на якому відбувається подія, є джерелом, а джерело відповідає за надсилання інформації про подію обробнику подій.
# 2) Слухач: Слухач - це не що інше, як обробник подій, відповідальний за виконання дії, коли подія відбувається. У Java слухач - це об'єкт, який очікує на подію. Як тільки подія відбувається, слухач обробляє подію.
Вимога полягає в тому, щоб зареєструвати слухача в об'єкті, щоб при виникненні події слухач міг її обробити.
Наприклад,для події натискання кнопки ми можемо мати наступну послідовність кроків.
- Користувач натискає кнопку, яка генерує подію Click.
- Створюється відповідний об'єкт класу подій, а джерело та дані про події передаються цьому об'єкту.
- Потім цей об'єкт події передається в клас слухача, зареєстрований в об'єкті.
- Слухач виконує і повертається.
Тепер обговоримо деякі слухачі, які надає Java.
ActionListener в Java
ActionListener - це слухач кнопки або елемента меню. Коли ми натискаємо на кнопку, задіяний прослуховувач кнопки є actionListener. ActionListener отримує сповіщення в ActionEvent.
Пакет подій java.awt.an визначає інтерфейс ActionListener. Цей інтерфейс має лише один метод actionPerformed ().
публічна анотація void actionPerformed (ActionEvent e);
При натисканні на зареєстрований компонент, такий як Button, автоматично запускається метод actionPerformed ().
Найбільш поширеним підходом до включення ActionListener до програми є реалізація інтерфейсу ActionListener, а потім реалізація методу actionPerformed ().
Етапи реалізації класу ActionListener такі:
# 1) Впровадити інтерфейс ActionListerner.
відкритий клас ActionListenerImpl Реалізує ActionListener
# 2) Зареєструйте компонент у цього слухача. Якщо кнопка є компонентом, який ми хочемо зареєструвати зі слухачем, тоді ми зареєструємо його наступним чином:
button.addActionListener (instanceOfListenerclass);
# 3) Впровадити / замінити метод actionPerformed ().
public void actionPerformed (ActionEvent e){ //code to perform action }
Отже, використовуючи наведені вище кроки, ми можемо пов’язати будь-яку подію з компонентом графічного інтерфейсу.
Наступний приклад демонструє подію натискання кнопки за допомогою ActionListener.
import javax.swing.*; import java.awt.event.*; public class Main { public static void main(String() args) { JFrame frame=new JFrame('Button Click Example'); final JTextField text_field=new JTextField(); //JTextField object text_field.setBounds(50,100, 150,20); JButton click_button=new JButton('Click Me!!!'); //JButton object click_button.setBounds(20,50,75,30); click_button.addActionListener(new ActionListener(){ //add an event and take action public void actionPerformed(ActionEvent e){ text_field.setText('You Clicked the button'); } }); //add button and textfield to the frame frame.add(click_button);frame.add(text_field); frame.setSize(400,400); frame.setLayout(null); frame.setVisible(true); } }
Вихід:
Вищевказана програма реалізує подію ActionListener. Подія - це подія натискання кнопки, і разом із нею ми пов’язали ActionListener, який відображає текст у текстовому полі після натискання кнопки.
KeyListener в Java
Щоразу, коли змінюється стан ключа, повідомляється KeyListener. Так само, як ActionListener, KeyListener також міститься в пакеті java.awt.event.
Інтерфейс KeyListener забезпечує наступні методи:
публічний реферат void keyPress (KeyEvent e);
публічний реферат void keyReleased (KeyEvent e);
публічний реферат void keyTyped (KeyEvent e);
Нам потрібно реалізувати вищезазначені методи, щоб пов’язати ключові події з компонентом. Ми залишаємо за користувачем реалізувати приклад KeyListener, використовуючи swings в Java.
Свонг-макети в Java
Коли ми розміщуємо різні компоненти в контейнері, тоді ми говоримо, що розкладаємо ці компоненти. Тож макет можна визначити як позиціонування компонентів у контейнері.
Поки компонентів менше, їх можна розмістити шляхом перетягування вручну. Але стає важко розташувати великі за кількістю компоненти. На цьому етапі нам допомагає Layout Manager Java.
LayoutManager відповідає за компонування компонентів у програмах графічного інтерфейсу. LayoutManager - це інтерфейс, який реалізований усіма класами менеджера макета. Java пропонує наступні класи LayoutManager.
LayoutManager | Опис |
---|---|
javax.swing.GroupLayout | Групуйте компоненти, а потім розміщуйте їх у контейнері. |
java.awt.BorderLayout | Компоненти розкладені відповідно до п’яти напрямків, а саме центру, сходу, заходу, півдня, півночі. |
java.awt.FlowLayout | Це макет за замовчуванням. Він закладає компоненти в спрямованому потоці. |
java.awt.GridLayout | Розташовує компоненти у прямокутній сітці. |
javax.swing.BoxLayout | Компоненти розташовані в коробці. |
java.awt.CardLayout | Кожен компонент розглядається як карта в колоді, і одночасно видно лише один компонент. |
java.awt.GridBagLayout | Розташовує компоненти вертикально, горизонтально або навіть уздовж їх базових ліній. Компоненти не повинні бути однакового розміру. |
javax.swing.ScrollPaneLayout | Використовується класом JScrollPane і відповідає за розміщення компонентів у прокручуваних контейнерах. |
javax.swing.SpringLayout тощо | Надано набір обмежень, таких як горизонтальна та вертикальна відстань між компонентами тощо, і компоненти розташовані відповідно до цього набору обмежень. |
У цьому посібнику ми обговоримо лише FlowLayout та GridLayout.
FlowLayout в Java
FlowLayout розташовує компоненти в напрямку потоку, один за одним. Це макет за замовчуванням для контейнерів, таких як Panel та Applet.
Клас FlowLayout на Java, який представляє менеджер FlowLayout, містить такі поля та конструктори.
Поля класу FlowLayout
- публічний статичний фінал int LEADING
- публічний статичний фінал int TRAILING
- публічний статичний фінал int LEFT
- публічний статичний фінал int ПРАВО
- публічний статичний фінал int ЦЕНТР
Наведені вище поля визначають позиції, в яких компоненти будуть розміщені або вирівняні.
Конструктори класу FlowLayout
- FlowLayout (): Це конструктор за замовчуванням. Цей конструктор створює схему потоку з центрально вирівняними компонентами із зазором за замовчуванням 5 одиниць у горизонтальному та вертикальному напрямку.
- FlowLayout (int align): Цей конструктор створює макет потоку із заданим значенням вирівнювання та з горизонтальним та вертикальним зазором 5 одиниць.
- FlowLayout (int align, int hgap, int vgap): Створює макет потоку із заданим значенням вирівнювання та горизонтальним та вертикальним зазором.
Нижче наведено приклад FlowLayout в Java.
import javax.swing.*; import java.awt.*; class FlowLayoutClass { JFrame frame; FlowLayoutClass() { frame = new JFrame('FlowLayout Example'); //create button components JButton b1 = new JButton('A'); JButton b2 = new JButton('B'); JButton b3 = new JButton('C'); JButton b4 = new JButton('D'); JButton b5 = new JButton('E'); //add components to the frame frame.add(b1); frame.add(b2); frame.add(b3); frame.add(b4); frame.add(b5); //set layout as 'FlowLayout.CENTER' frame.setLayout(new FlowLayout(FlowLayout.CENTER)); //setting flow layout of right alignment frame.setSize(300, 300); frame.setVisible(true); } } public class Main{ public static void main(String() args) { new FlowLayoutClass(); } }
Вихід:
GridLayout в Java
За допомогою GridLayout ми можемо компонувати компоненти прямокутною сіткою, тобто кожен компонент розміщений у кожному прямокутнику.
Конструктори класу GridLayout
- GridLayout (): конструктор за замовчуванням, який генерує макет сітки, що має один стовпець на один компонент в рядку.
- GridLayout (int рядки, int стовпці): Цей конструктор генерує макет сітки із зазначеними рядками та стовпцями. Між компонентами немає зазору.
- GridLayout (int рядки, int стовпці, int hgap, int vgap): Використовуючи цей конструктор, ми генеруємо макет сітки із зазначеними рядками та стовпцями та горизонтальними та вертикальними прогалинами.
Наступний приклад реалізує GridLayout в Java.
import javax.swing.*; import java.awt.*; class GridLayoutClass { JFrame frame; GridLayoutClass() { frame=new JFrame('GridLayout Example'); //create components to be laid out as per GridLayout JButton b1=new JButton('P'); JButton b2=new JButton('Q'); JButton b3=new JButton('R'); JButton b4=new JButton('S'); JButton b5=new JButton('T'); JButton b6=new JButton('U'); JButton b7=new JButton('V'); JButton b8=new JButton('W'); JButton b9=new JButton('X'); //add components to the frame frame.add(b1);frame.add(b2);frame.add(b3);frame.add(b4);frame.add(b5); frame.add(b6);frame.add(b7);frame.add(b8);frame.add(b9); //set frame layout to GridLayout of 3 rows and 3 columns frame.setLayout(new GridLayout(3,3)); frame.setSize(300,300); frame.setVisible(true); } } public class Main{ public static void main(String() args) { new GridLayoutClass(); } }
Вихід:
Перешкоди в Java
Якщо ми перевіримо приклади програмування в цьому посібнику перед темою макета, ми зможемо побачити, що ми встановили макет як нульовий у цих прикладах (setLayout (null)). Ми бачили, що коли ми використовуємо менеджери версталів у нашій програмі, вони автоматично розміщують компоненти.
Коли менеджери макетів не використовуються, ми можемо використовувати метод setBounds до розміру та положення компонента. Отже, метод setBounds використовується для ручного розташування компонента, а також для встановлення розміру.
Загальний синтаксис методу setBounds такий:
setBounds (int x-координата, int y - координата, int ширина, int висота)
Давайте тепер реалізуємо приклад методу SetBounds.
import javax.swing.*; public class Main { public static void main(String arg()) { JFrame frame = new JFrame('SetBounds Method Test'); frame.setSize(375, 250); // Set layout as null frame.setLayout(null); // Create a Button JButton button = new JButton('ButtonWithSetBounds'); // Set position and size of a button using setBounds button.setBounds(80,30,200,40); frame.add(button); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLocationRelativeTo(null); frame.setVisible(true); } }
Вихід:
найкращий завантажувач mp3 для андроїд без реклами
У наведеній вище програмі ми маємо компонент Button. Ми не встановили жодного макета, але ми використали метод setBounds для встановлення його положення та розмірів.
Гойдалки проти JavaFX
Гойдалки | JavaFX |
---|---|
Swing надає API для створення графічних компонентів. | JavaFX надає сценарії та швидку розробку інтерфейсу, пов’язаного з конструктором екрану. |
У наступних версіях Swing не буде додано жодної нової функціональності. | JavaFX забезпечує розширені функціональні можливості та потенціал для більшої кількості функцій у майбутніх версіях. |
Ми можемо створити всі стандартні компоненти за допомогою Swing API. | JavaFX дозволяє нам створювати насичені компоненти графічного інтерфейсу, використовуючи вдосконалений зовнішній вигляд. |
Велика кількість компонентів присутня в Swing. | JavaFX має порівняно меншу кількість компонентів. |
Swing - це повнофункціональна бібліотека інтерфейсу користувача. | JavaFX - це новий і майбутній API з багатими компонентами інтерфейсу. |
Свінг має слабку підтримку MVC. | JavaFX послідовно підтримує шаблон MVC. |
Часті запитання
Q # 1) Чи все ще Swing використовується в Java?
Відповідь: Так, Swing все ще використовується в Java, і це занадто сильно. Іноді його використовують як повну заміну AWT. Іноді він також використовується разом з деякими компонентами AWT. Він навіть використовується з останньою версією JavaFX. Тож Swing все ще використовується і буде використовуватися ще довгий час.
Q # 2) Як працює Java Swing?
Відповідь: Swing в Java написаний поверх фреймворку AWT. Отже, обробка подій AWT успадковується поворотом повністю. Swing також пропонує велику кількість компонентів, які ми можемо використовувати для розробки ефективних графічних програм.
Q # 3) Чи дотримується Swing MVC?
Відповідь: Swing API має слабку підтримку MVC. Модель представляє дані компонента. Компонент swing має окремий елемент, який називається Model, тоді як Controller і View поєднані в елементи інтерфейсу. Таке розмахування дозволяє гойдалкам мати вигляд та відчуття, що підключаються.
Q # 4) Чи JavaFX кращий за Swing?
Відповідь: Swing існує вже давно і має більш зрілу підтримку IDE. Він також мав дуже велику бібліотеку компонентів. JavaFX порівняно новіший і має невелику бібліотеку компонентів, але з більш послідовними оновленнями та постійною підтримкою MVC. Таким чином, це залежить від того, як JavaFX розвиватиметься далі та надаватиме більше можливостей.
Q # 5) Що краще AWT або Swing?
Відповідь: Swing побудований поверх AWT і забезпечує багатий і великий набір компонентів інтерфейсу порівняно з AWT. Гойдальні компоненти також можуть мати свій зовнішній вигляд та відчуття, на відміну від компонентів AWT, які мають зовнішній вигляд операційної системи.
Поворотні компоненти швидші, ніж AWT. Всі ці фактори роблять гойдалки кращими, ніж AWT.
Детальніше про Java Swing
Коли ви створюєте програму, спочатку у вас повинен бути базовий контейнер, і ви повинні додати в контейнер необхідні компоненти, такі як кнопки та текстові поля.
І коли ви натискаєте або виконуєте будь-яку операцію в будь-якому полі, подія відбудеться, і ваш код повинен прослуховувати події, а також обробляти подію.
Гойдалка контейнер
Контейнер - це кореневий елемент Програми. Усі інші компоненти додаються до цього кореня, і він утворює ієрархію.
Існує три класи контейнерів:
- JFrame
- JDialog
- JApplet
Демонстрація контейнера за допомогою JFrame:
import java.awt.Color; import javax.swing.JFrame; import javax.swing.JPanel; public class ContainerDemo { public static void main(String() args) { JFrame baseFrame =new JFrame(); baseFrame.setTitle('Base Container'); JPanel contentPane=new JPanel(); contentPane.setBackground(Color.pink); baseFrame.setSize(400, 400); baseFrame.add(contentPane); baseFrame.setDefaultCloseOperation(baseFrame.EXIT_ON_CL OSE); baseFrame.setVisible(true); } }
Коли ви запустите вищевказану програму, ви отримаєте нижченаведений результат.
Компоненти
Клас JComponent - це базовий клас для всіх компонентів, що гойдаються.
Часто використовувані компоненти включають,
- JButton
- JTextField
- JTextArea
- JRadioButton
- JComboBox тощо
Усі ці компоненти слід додати до контейнера, якщо ні, він не з’явиться у додатку.
Приклад:
Щоб створити екземпляр кнопки,
JButton clickButton = новий JButton ();
Щоб додати кнопку в контейнер,
myFrame.add ();
Обробка подій
Усі додатки керуються подіями, такими як клацання кнопок, клацання мишею, введення тексту користувача тощо. Коли подія відбувається, вам слід додати слухача і повинен передати вихідний об'єкт події.
За допомогою внутрішнього класу ви можете обробляти подію за своєю логікою, як показано нижче.
public class ContainerDemo { public void createApp() { JFrame baseFrame =new JFrame(); JPanel contentPane=new JPanel(); baseFrame.setTitle('Base Container'); baseFrame.setSize(400, 400); baseFrame.add(contentPane); JButton demoButton =new JButton('click'); demoButton.setBounds(100,95,95,30); JTextArea result =new JTextArea(); result.setBounds(130,140,95,30); contentPane.add(demoButton); contentPane.add(result); baseFrame.setDefaultCloseOperation(baseFrame.EXIT_ON_CL OSE); baseFrame.setVisible(true); demoButton.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { result.setText('button clicked'); } }); } public static void main(String() args) { ContainerDemo c =new ContainerDemo(); c.createApp(); } }
Висновок
У цьому посібнику ми торкнулися основи Swing API, що надається Java для побудови графічних програм. Ми обговорили основні гойдалки та компоненти та їх реалізацію.
Ми також обговорили обробку подій у Swing. Хоча механізм обробки подій є AWT, swing реалізує події ефективно. Потім ми обговорили різні менеджери макетів, що надаються Swing API, що дозволяють нам розміщувати або впорядковувати різні компоненти в програмах Swing GUI.
=> Ознайомтесь з Ідеальним посібником з навчання Java тут.
Рекомендована література
- Підручник з роздумів про Java з прикладами
- Підручник JAVA для початківців: 100+ практичних навчальних посібників Java
- Підручник з Java Collections Framework (JCF)
- Модифікатори доступу в Java - Підручник із прикладами
- Рядок Java із підручником для буфера рядків та побудови рядків
- Вступ до мови програмування Java - Підручник з відео