SWING - Szybki przewodnik

Swing API to zestaw rozszerzalnych komponentów GUI, które ułatwiają programistom tworzenie aplikacji Front End / GUI opartych na języku JAVA. Jest zbudowany na bazie AWT API i działa jako zamiennik API AWT, ponieważ ma prawie wszystkie kontrolki odpowiadające kontrolkom AWT. Komponent Swing jest zgodny z architekturą Model-View-Controller, aby spełnić następujące kryteria.

  • Pojedynczy interfejs API powinien wystarczyć do obsługi wielu wyglądów i stylów.

  • API ma być oparte na modelu, tak aby API najwyższego poziomu nie musiało mieć danych.

  • API ma korzystać z modelu Java Bean, aby Narzędzia Builder i IDE mogły zapewnić lepsze usługi dla programistów.

Architektura MVC

Architektura Swing API jest zgodna z luźno opartą architekturą MVC w następujący sposób.

  • Model reprezentuje dane komponentu.

  • Widok reprezentuje wizualną reprezentację danych składnika.

  • Kontroler pobiera dane wejściowe od użytkownika w widoku i odzwierciedla zmiany w danych składnika.

  • Komponent Swing ma Model jako oddzielny element, podczas gdy część Widok i Kontroler jest umieszczona w elementach interfejsu użytkownika. Z tego powodu Swing ma podłączaną architekturę.

Funkcje Swing

  • Light Weight - Komponenty Swing są niezależne od natywnego API systemu operacyjnego, ponieważ kontrolki Swing API są renderowane głównie przy użyciu czystego kodu JAVA zamiast podstawowych wywołań systemu operacyjnego.

  • Rich Controls - Swing zapewnia bogaty zestaw zaawansowanych kontrolek, takich jak Drzewo, TabbedPane, suwak, selektor kolorów i kontrolki tabeli.

  • Highly Customizable - Elementy sterujące Swing można dostosować w bardzo łatwy sposób, ponieważ wygląd wizualny jest niezależny od reprezentacji wewnętrznej.

  • Pluggable look-and-feel - GUI oparty na SWING Wygląd i działanie aplikacji można zmieniać w czasie wykonywania, w oparciu o dostępne wartości.

Ta sekcja zawiera instrukcje pobierania i konfigurowania oprogramowania Java na komputerze. Wykonaj następujące kroki, aby skonfigurować środowisko.

Java SE jest dostępna bezpłatnie pod linkiem Pobierz Javę . Dlatego możesz pobrać wersję opartą na systemie operacyjnym.

Postępuj zgodnie z instrukcjami, aby pobrać Javę i uruchomić .exeaby zainstalować Javę na swoim komputerze. Po zainstalowaniu Javy na komputerze należałoby ustawić zmienne środowiskowe, aby wskazywały na prawidłowe katalogi instalacyjne.

Konfigurowanie ścieżki dla Windows 2000 / XP

Zakładając, że masz zainstalowaną Javę w c:\Program Files\java\jdk katalog -

Step 1 - Kliknij prawym przyciskiem myszy „Mój komputer” i wybierz „Właściwości”.

Step 2 - Kliknij przycisk „Zmienne środowiskowe” na karcie „Zaawansowane”.

Step 3- Zmień zmienną „Path”, tak aby zawierała również ścieżkę do pliku wykonywalnego Java. Na przykład, jeśli ścieżka jest obecnie ustawiona na'C:\WINDOWS\SYSTEM32', a następnie zmień ścieżkę czytania 'C:\WINDOWS\SYSTEM32;c:\Program Files\java\jdk\bin'.

Konfigurowanie ścieżki dla Windows 95/98 / ME

Zakładając, że masz zainstalowaną Javę w c:\Program Files\java\jdk katalog -

Step 1 - Edytuj plik 'C:\autoexec.bat' plik i dodaj następujący wiersz na końcu: 'SET PATH=%PATH%;C:\Program Files\java\jdk\bin'.

Konfigurowanie ścieżki dla systemów Linux, UNIX, Solaris, FreeBSD

Zmienna środowiskowa PATH powinna być ustawiona tak, aby wskazywała, gdzie zostały zainstalowane pliki binarne Java. Zajrzyj do dokumentacji Shell, jeśli masz z tym problem.

Przykład, jeśli używasz bash jako swoją powłokę, dodasz następujący wiersz na końcu '.bashrc: export PATH=/path/to/java:$PATH'.

Popularne edytory Java

Do pisania programów w języku Java potrzebny będzie edytor tekstu. Na rynku dostępne są jeszcze bardziej wyrafinowane IDE. Ale na razie możesz rozważyć jedną z następujących rzeczy -

  • Notepad - Na komputerze z systemem Windows możesz użyć dowolnego prostego edytora tekstu, takiego jak Notatnik (zalecany w tym samouczku), TextPad.

  • Netbeans - Netbeans to środowisko Java IDE o otwartym kodzie źródłowym i bezpłatne, które można pobrać z witryny https://www.netbeans.org/index.html.

  • Eclipse - Eclipse to także środowisko Java IDE opracowane przez społeczność oprogramowania typu open source Eclipse, które można pobrać z witryny https://www.eclipse.org/.

Każdy interfejs użytkownika uwzględnia trzy główne aspekty -

  • UI Elements- Są to podstawowe elementy wizualne, które użytkownik ostatecznie widzi i z którymi wchodzi w interakcję. GWT zawiera ogromną listę powszechnie używanych i typowych elementów, od podstawowych do złożonych, które omówimy w tym samouczku.

  • Layouts- Definiują sposób organizacji elementów interfejsu użytkownika na ekranie i zapewniają ostateczny wygląd i działanie GUI (graficzny interfejs użytkownika). Ta część zostanie omówiona w rozdziale Układ.

  • Behavior- Są to zdarzenia, które występują, gdy użytkownik wchodzi w interakcję z elementami interfejsu użytkownika. Ta część zostanie omówiona w rozdziale Obsługa wydarzeń.

Każda kontrolka SWING dziedziczy właściwości z następującej hierarchii klas Component.

S.No. Klasa i opis
1 Składnik

Komponent jest abstrakcyjną klasą bazową dla kontrolek interfejsu użytkownika SWING niezwiązanych z menu. Komponent reprezentuje obiekt z graficzną reprezentacją

2 Pojemnik

Kontener to komponent, który może zawierać inne komponenty SWING

3 JComponent

JComponent jest klasą bazową dla wszystkich komponentów SWING UI. Aby użyć komponentu SWING, który dziedziczy po JComponent, komponent musi znajdować się w hierarchii zawierania, której korzeniem jest kontener SWING najwyższego poziomu

Elementy interfejsu SWING

Poniżej znajduje się lista najczęściej używanych kontrolek podczas projektowania GUI przy użyciu SWING.

S.No. Klasa i opis
1 JLabel

Obiekt JLabel to komponent służący do umieszczania tekstu w kontenerze.

2 JButton

Ta klasa tworzy przycisk z etykietą.

3 JColorChooser

JColorChooser udostępnia panel kontrolek zaprojektowanych w celu umożliwienia użytkownikowi manipulowania i wybierania koloru.

4 JCheck Box

JCheckBox to składnik graficzny, który może znajdować się w pliku on (prawda lub off (fałszywy) stan.

5 JRadioButton

Klasa JRadioButton jest składnikiem graficznym, który może znajdować się w pliku on (prawda lub off(fałszywy) stan. w grupie.

6 JList

Komponent JList przedstawia użytkownikowi przewijaną listę elementów tekstowych.

7 JComboBox

Komponent JComboBox przedstawia użytkownikowi, aby wyświetlić menu opcji.

8 JTextField

Obiekt JTextField to komponent tekstowy, który umożliwia edycję pojedynczego wiersza tekstu.

9 JPasswordField

Obiekt JPasswordField to składnik tekstowy przeznaczony do wprowadzania hasła.

10 JTextArea

Obiekt JTextArea jest składnikiem tekstowym, który umożliwia edycję wielu wierszy tekstu.

11 ImageIcon

Formant ImageIcon jest implementacją interfejsu Icon, który maluje ikony z obrazów

12 JScrollbar

Element sterujący Scrollbar reprezentuje składnik paska przewijania umożliwiający użytkownikowi wybór z zakresu wartości.

13 JOptionPane

JOptionPane udostępnia zestaw standardowych okien dialogowych, które monitują użytkowników o podanie wartości lub informują ich o czymś.

14 JFileChooser

Kontrolka JFileChooser reprezentuje okno dialogowe, w którym użytkownik może wybrać plik.

15 JProgressBar

W miarę postępu zadania w kierunku ukończenia na pasku postępu wyświetlany jest procent wykonania zadania.

16 JSlider

JSlider pozwala użytkownikowi graficznie wybrać wartość, przesuwając gałkę w określonym przedziale.

17 JSpinner

JSpinner to jednowierszowe pole wejściowe, które pozwala użytkownikowi wybrać liczbę lub wartość obiektu z uporządkowanej sekwencji.

W tym rozdziale dowiesz się o zdarzeniach, ich typach, a także nauczysz się obsługiwać zdarzenia. Przykład znajduje się na końcu rozdziału w celu lepszego zrozumienia.

Co to jest wydarzenie?

Zmiana stanu obiektu nazywana jest Event, tj. zdarzenie opisuje zmianę stanu źródła. Zdarzenia są generowane w wyniku interakcji użytkownika z elementami graficznego interfejsu użytkownika. Na przykład kliknięcie przycisku, poruszenie myszą, wprowadzenie znaku za pomocą klawiatury, wybranie pozycji z listy i przewijanie strony to czynności, które powodują wystąpienie zdarzenia.

Rodzaje wydarzeń

Zdarzenia można ogólnie podzielić na dwie kategorie -

  • Foreground Events- Te zdarzenia wymagają bezpośredniej interakcji użytkownika. Są generowane jako konsekwencje osoby wchodzącej w interakcję z elementami graficznymi w graficznym interfejsie użytkownika. Na przykład kliknięcie przycisku, poruszenie myszą, wpisanie znaku z klawiatury, wybranie pozycji z listy, przewijanie strony itp.

  • Background Events- Zdarzenia te wymagają interakcji użytkownika końcowego. Przerwania systemu operacyjnego, awaria sprzętu lub oprogramowania, upływ czasu i zakończenie operacji to tylko niektóre przykłady zdarzeń w tle.

Co to jest obsługa zdarzeń?

Obsługa zdarzeń to mechanizm, który kontroluje zdarzenie i decyduje, co powinno się stać, jeśli wystąpi zdarzenie. Ten mechanizm zawiera kod, który jest znany jako program obsługi zdarzeń, który jest wykonywany, gdy wystąpi zdarzenie.

Java używa modelu zdarzeń delegowania do obsługi zdarzeń. Ten model definiuje standardowy mechanizm generowania i obsługi zdarzeń.

Model zdarzenia delegacji ma następujących kluczowych uczestników.

  • Source- Źródłem jest obiekt, na którym zachodzi zdarzenie. Źródło jest odpowiedzialne za dostarczanie informacji o wystąpieniu zdarzenia do jego obsługi. Java dostarcza nam klasy dla obiektu źródłowego.

  • Listener- Jest również znany jako program obsługi zdarzeń. Odbiornik jest odpowiedzialny za wygenerowanie odpowiedzi na zdarzenie. Z punktu widzenia implementacji Javy, słuchacz jest również obiektem. Słuchacz czeka, aż otrzyma zdarzenie. Po odebraniu zdarzenia odbiornik przetwarza je, a następnie wraca.

Zaletą tego podejścia jest to, że logika interfejsu użytkownika jest całkowicie oddzielona od logiki, która generuje zdarzenie. Element interfejsu użytkownika może delegować przetwarzanie zdarzenia do oddzielnego fragmentu kodu.

W tym modelu odbiornik musi być zarejestrowany w obiekcie źródłowym, aby mógł otrzymać powiadomienie o zdarzeniu. Jest to skuteczny sposób obsługi zdarzenia, ponieważ powiadomienia o zdarzeniach są wysyłane tylko do tych słuchaczy, którzy chcą je otrzymywać.

Kroki związane z obsługą zdarzeń

Step 1 - Użytkownik klika przycisk i zdarzenie jest generowane.

Step 2 - Obiekt danej klasy zdarzenia jest tworzony automatycznie, a informacje o źródle i zdarzeniu są umieszczane w tym samym obiekcie.

Step 3 - Obiekt zdarzenia jest przekazywany do metody zarejestrowanej klasy detektora.

Step 4 - Metoda jest wykonywana i zwraca.

Punkty do zapamiętania o słuchaczu

  • Aby zaprojektować klasę detektora, musisz opracować kilka interfejsów nasłuchujących. Te interfejsy Listener prognozują niektóre publiczne abstrakcyjne metody wywołania zwrotnego, które muszą być implementowane przez klasę listener.

  • Jeśli nie zaimplementujesz żadnego z predefiniowanych interfejsów, Twoja klasa nie może działać jako klasa nasłuchująca dla obiektu źródłowego.

Metody oddzwaniania

Są to metody, które są dostarczane przez dostawcę API i są definiowane przez programistę aplikacji i wywoływane przez dewelopera aplikacji. Tutaj metody wywołania zwrotnego reprezentują metodę zdarzenia. W odpowiedzi na zdarzenie java jre uruchomi metodę callback. Wszystkie takie metody wywołania zwrotnego są dostępne w interfejsach nasłuchujących.

Jeśli składnik chce, aby jakiś słuchacz nasłuchiwał jego zdarzeń, źródło musi zarejestrować się w odbiorniku.

Przykład obsługi zdarzeń

Utwórz następujący program w języku Java, używając na przykład dowolnego edytora D:/ > SWING > com > tutorialspoint > gui >

SwingControlDemo.java

package com.tutorialspoint.gui;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class SwingControlDemo {
   private JFrame mainFrame;
   private JLabel headerLabel;
   private JLabel statusLabel;
   private JPanel controlPanel;

   public SwingControlDemo(){
      prepareGUI();
   }
   public static void main(String[] args){
      SwingControlDemo swingControlDemo = new SwingControlDemo();  
      swingControlDemo.showEventDemo();       
   }
   private void prepareGUI(){
      mainFrame = new JFrame("Java SWING Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));

      headerLabel = new JLabel("",JLabel.CENTER );
      statusLabel = new JLabel("",JLabel.CENTER);        
      statusLabel.setSize(350,100);
      
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      controlPanel = new JPanel();
      controlPanel.setLayout(new FlowLayout());

      mainFrame.add(headerLabel);
      mainFrame.add(controlPanel);
      mainFrame.add(statusLabel);
      mainFrame.setVisible(true);  
   }
   private void showEventDemo(){
      headerLabel.setText("Control in action: Button"); 

      JButton okButton = new JButton("OK");
      JButton submitButton = new JButton("Submit");
      JButton cancelButton = new JButton("Cancel");

      okButton.setActionCommand("OK");
      submitButton.setActionCommand("Submit");
      cancelButton.setActionCommand("Cancel");

      okButton.addActionListener(new ButtonClickListener()); 
      submitButton.addActionListener(new ButtonClickListener()); 
      cancelButton.addActionListener(new ButtonClickListener()); 

      controlPanel.add(okButton);
      controlPanel.add(submitButton);
      controlPanel.add(cancelButton);       

      mainFrame.setVisible(true);  
   }
   private class ButtonClickListener implements ActionListener{
      public void actionPerformed(ActionEvent e) {
         String command = e.getActionCommand();  
         
         if( command.equals( "OK" ))  {
            statusLabel.setText("Ok Button clicked.");
         } else if( command.equals( "Submit" ) )  {
            statusLabel.setText("Submit Button clicked."); 
         } else {
            statusLabel.setText("Cancel Button clicked.");
         }  	
      }		
   }
}

Skompiluj program za pomocą wiersza poleceń. Iść doD:/ > SWING i wpisz następujące polecenie.

D:\AWT>javac com\tutorialspoint\gui\SwingControlDemo.java

Jeśli nie wystąpi błąd, oznacza to, że kompilacja się powiodła. Uruchom program za pomocą następującego polecenia.

D:\AWT>java com.tutorialspoint.gui.SwingControlDemo

Sprawdź następujące dane wyjściowe.

Klasy zdarzeń reprezentują wydarzenie. Java udostępnia różne klasy Event, jednak omówione zostaną tylko te, które są częściej używane.

Klasa EventObject

Jest to klasa główna, z której mają być wyprowadzone wszystkie obiekty stanu zdarzenia. Wszystkie zdarzenia są konstruowane w odniesieniu do obiektu, plikusource, to jest logicznie uważane za przedmiot, na którym dane Zdarzenie pierwotnie miało miejsce. Ta klasa jest zdefiniowana wjava.util pakiet.

Deklaracja klasy

Poniżej znajduje się deklaracja dla java.util.EventObject klasa -

public class EventObject
   extends Object
      implements Serializable

Pole

Poniżej znajdują się pola dla java.util.EventObject klasa -

protected Object source - obiekt, na którym zdarzenie pierwotnie miało miejsce.

Konstruktorzy klas

Sr.No. Konstruktor i opis
1

EventObject(Object source)

Konstruuje prototypowe wydarzenie.

Metody klasowe

Sr.No. Metoda i opis
1

Object getSource()

Obiekt, na którym zdarzenie początkowo miało miejsce.

2

String toString()

Zwraca ciąg reprezentujący ten EventObject.

Dziedziczone metody

Ta klasa dziedziczy metody z następującej klasy -

  • java.lang.Object

Klasy imprez SWING

Poniżej znajduje się lista najczęściej używanych klas Event.

Sr.No. Klasa i opis
1 AWTEvent

Jest to główna klasa zdarzeń dla wszystkich wydarzeń SWING. Ta klasa i jej podklasy zastępują oryginałjava.awt.Event klasa.

2 ActionEvent

Zdarzenie ActionEvent jest generowane po kliknięciu przycisku lub dwukrotnym kliknięciu elementu listy.

3 InputEvent

Klasa InputEvent jest klasą zdarzenia głównego dla wszystkich zdarzeń wejściowych na poziomie komponentu.

4 Ważne wydarżenie

Po wprowadzeniu znaku generowane jest zdarzenie Klucz.

5 MouseEvent

To zdarzenie oznacza, że ​​w komponencie wystąpiła akcja myszy.

6 WindowEvent

Obiekt tej klasy reprezentuje zmianę stanu okna.

7 AdjustmentEvent

Obiekt tej klasy reprezentuje zdarzenie korekty emitowane przez obiekty Adjustable.

8 ComponentEvent

Obiekt tej klasy reprezentuje zmianę stanu okna.

9 ContainerEvent

Obiekt tej klasy reprezentuje zmianę stanu okna.

10 MouseMotionEvent

Obiekt tej klasy reprezentuje zmianę stanu okna.

11 PaintEvent

Obiekt tej klasy reprezentuje zmianę stanu okna.

Odbiorniki zdarzeń reprezentują interfejsy odpowiedzialne za obsługę zdarzeń. Java udostępnia różne klasy detektora zdarzeń, jednak omówione zostaną tylko te, które są częściej używane. Każda metoda metody detektora zdarzeń ma pojedynczy argument jako obiekt, który jest podklasą klasy EventObject. Na przykład metody detektora zdarzeń myszy akceptują wystąpienie MouseEvent, gdzie MouseEvent pochodzi od EventObject.

Interfejs EventListner

Jest to interfejs znaczników, który musi rozszerzać każdy interfejs słuchacza. Ta klasa jest zdefiniowana wjava.util pakiet.

Deklaracja klasy

Poniżej znajduje się deklaracja dla java.util.EventListener interfejs -

public interface EventListener

Interfejsy nasłuchiwania zdarzeń SWING

Poniżej znajduje się lista często używanych detektorów zdarzeń.

Sr.No. Klasa i opis
1 ActionListener

Ten interfejs służy do odbierania zdarzeń akcji.

2 ComponentListener

Ten interfejs służy do odbierania zdarzeń składowych.

3 ItemListener

Ten interfejs służy do odbierania zdarzeń pozycji.

4 KeyListener

Ten interfejs służy do odbierania kluczowych zdarzeń.

5 MouseListener

Ten interfejs służy do odbierania zdarzeń myszy.

6 WindowListener

Ten interfejs służy do odbierania zdarzeń okna.

7 AdjustmentListener

Ten interfejs służy do odbierania zdarzeń regulacji.

8 ContainerListener

Ten interfejs służy do odbierania zdarzeń kontenera.

9 MouseMotionListener

Ten interfejs służy do odbierania zdarzeń ruchu myszy.

10 FocusListener

Ten interfejs jest używany do odbierania zdarzeń aktywności.

Adaptery to abstrakcyjne klasy do odbierania różnych wydarzeń. Metody w tych klasach są puste. Te klasy istnieją jako udogodnienie przy tworzeniu obiektów nasłuchujących.

Adaptery SWING

Poniżej znajduje się lista najczęściej używanych adapterów podczas słuchania zdarzeń GUI w SWING.

Sr.No. Adapter i opis
1 FocusAdapter

Abstrakcyjna klasa adaptera do odbierania zdarzeń aktywności.

2 KeyAdapter

Abstrakcyjna klasa adaptera do odbierania kluczowych zdarzeń.

3 MouseAdapter

Abstrakcyjna klasa adaptera do odbierania zdarzeń myszy.

4 MouseMotionAdapter

Abstrakcyjna klasa adaptera do odbierania zdarzeń ruchu myszy.

5 WindowAdapter

Abstrakcyjna klasa adaptera do odbierania zdarzeń okna.

Układ odnosi się do rozmieszczenia elementów w pojemniku. Innymi słowy, można powiedzieć, że układ polega na umieszczeniu komponentów w określonym miejscu w pojemniku. Zadanie rozmieszczenia elementów sterujących jest wykonywane automatycznie przez Menedżera rozmieszczenia.

Menedżer układu

Menedżer układu automatycznie umieszcza wszystkie komponenty w kontenerze. Nawet jeśli nie używasz menedżera układu, komponenty są nadal pozycjonowane przez domyślnego menedżera układu. Możliwe jest ręczne rozłożenie elementów sterujących, jednak staje się to bardzo trudne z dwóch następujących powodów.

  • Obsługa dużej liczby elementów sterujących w kontenerze jest bardzo uciążliwa.

  • Zazwyczaj informacje o szerokości i wysokości komponentu nie są podawane, gdy musimy je ustawić.

Java udostępnia różne menedżery układów do rozmieszczania elementów sterujących. Właściwości, takie jak rozmiar, kształt i układ, różnią się w zależności od menedżera układu. Gdy rozmiar apletu lub okna aplikacji zmienia się, rozmiar, kształt i rozmieszczenie komponentów również zmienia się w odpowiedzi, tj. Menedżerowie układu dostosowują się do wymiarów przeglądarki apletów lub okna aplikacji.

Menedżer układu jest powiązany z każdym obiektem kontenera. Każdy menedżer układu jest obiektem klasy, która implementuje interfejs LayoutManager.

Poniżej znajdują się interfejsy definiujące funkcje Layout Managera.

Sr.No. Interfejs i opis
1 LayoutManager

Interfejs LayoutManager deklaruje te metody, które muszą zostać zaimplementowane przez klasę, której obiekt będzie pełnił rolę menedżera układu.

2 LayoutManager2

LayoutManager2 to podinterfejs modułu LayoutManager. Ten interfejs jest przeznaczony dla tych klas, które wiedzą, jak układać kontenery na podstawie obiektu ograniczenia układu.

Klasy AWT Layout Manager

Poniżej znajduje się lista najczęściej używanych kontrolek podczas projektowania GUI przy użyciu AWT.

Sr.No. LayoutManager i opis
1 BorderLayout

Układ graniczny rozmieszcza komponenty tak, aby pasowały do ​​pięciu regionów: wschodniego, zachodniego, północnego, południowego i środkowego.

2 CardLayout

Obiekt CardLayout traktuje każdy składnik w kontenerze jako kartę. W danym momencie widoczna jest tylko jedna karta.

3 FlowLayout

Układ FlowLayout jest układem domyślnym. Układa komponenty w kierunku przepływu.

4 GridLayout

GridLayout zarządza komponentami w postaci prostokątnej siatki.

5 GridBagLayout

Jest to najbardziej elastyczna klasa menedżera układu. Obiekt GridBagLayout wyrównuje składnik w pionie, poziomie lub wzdłuż ich linii bazowej bez konieczności stosowania składników o tym samym rozmiarze.

6 GroupLayout

GroupLayout hierarchicznie grupuje składniki w celu umieszczenia ich w kontenerze.

7 SpringLayout

SpringLayout umieszcza elementy podrzędne skojarzonego z nim kontenera zgodnie z zestawem ograniczeń.

Jak wiemy, każde okno najwyższego poziomu ma powiązany z nim pasek menu. Ten pasek menu składa się z różnych opcji menu dostępnych dla użytkownika końcowego. Ponadto każdy wybór zawiera listę opcji nazywanych menu rozwijanymi. Kontrolki Menu i MenuItem są podklasą klasy MenuComponent.

Hierarchia menu

Sterowanie menu

Sr.No. Klasa i opis
1 JMenuBar

Obiekt JMenuBar jest powiązany z oknem najwyższego poziomu.

2 JMenuItem

Elementy w menu muszą należeć do JMenuItem lub dowolnej jej podklasy.

3 JMenu

Obiekt JMenu to element menu rozwijanego, który jest wyświetlany z paska menu.

4 JCheckboxMenuItem

JCheckboxMenuItem jest podklasą klasy JMenuItem.

5 JRadioButtonMenuItem

JRadioButtonMenuItem jest podklasą klasy JMenuItem.

6 JPopupMenu

JPopupMenu może być dynamicznie wyświetlane w określonej pozycji w komponencie.

Kontenery są integralną częścią komponentów SWING GUI. Kontener zapewnia przestrzeń, w której można umieścić komponent. Kontener w AWT jest sam w sobie komponentem i zapewnia możliwość dodania komponentu do siebie. Poniżej przedstawiono pewne istotne kwestie, które należy wziąć pod uwagę.

  • Podklasy kontenera są nazywane kontenerami. Na przykład JPanel, JFrame i JWindow.

  • Kontener może dodać do siebie tylko składnik.

  • Domyślny układ jest obecny w każdym kontenerze, który można zastąpić za pomocą setLayout metoda.

Kontenery SWING

Poniżej znajduje się lista najczęściej używanych kontenerów podczas projektowania GUI przy użyciu SWING.

Sr.No. Pojemnik i opis
1 Płyta

JPanel to najprostszy pojemnik. Zapewnia przestrzeń, w której można umieścić dowolny inny element, w tym inne panele.

2 Rama

JFrame to okno najwyższego poziomu z tytułem i obramowaniem.

3 Okno

Obiekt JWindow to okno najwyższego poziomu bez obramowań i paska menu.