Swing in Java: weet hoe u een GUI kunt maken met voorbeelden



: verdien het concept van swing in java met swing class hiërarchie en layout manager met een praktische demonstratie van GUI applicatie.

Swing in Java maakt deel uit van de Java Foundation-klasse die lichtgewicht en platformonafhankelijk is. Het wordt gebruikt voor het maken van op vensters gebaseerde applicaties. Het bevat componenten zoals knop, schuifbalk, tekstveld enz. Door al deze componenten samen te voegen, ontstaat een grafische gebruikersinterface. In dit artikel bespreken we de concepten die betrokken zijn bij het bouwen van applicaties met swing in . Hieronder volgen de concepten die in dit artikel worden besproken:

Wat is Swing in Java?

Swing in Java is een lichtgewicht GUI-toolkit met een breed scala aan widgets voor het bouwen van geoptimaliseerde op vensters gebaseerde applicaties. Het maakt deel uit van de JFC (Java Foundation Classes). Het is bovenop de AWT API gebouwd en volledig geschreven in . Het is platformonafhankelijk in tegenstelling tot AWT en heeft lichtgewicht componenten.





Het wordt gemakkelijker om applicaties te bouwen omdat we al GUI-componenten hebben zoals knop, checkbox etc. Dit is handig omdat we niet helemaal opnieuw hoeven te beginnen.

Containerklasse

Ieder die andere componenten bevat, wordt een containerklasse genoemd. Voor het bouwen van GUI-applicaties is ten minste één containerklasse nodig.



Hieronder volgen de drie soorten containerklassen:

  1. Paneel - Het wordt gebruikt om componenten in een venster te organiseren

  2. Frame - Een volledig functionerend venster met pictogrammen en titels



  3. Dialoog - Het is als een pop-upvenster maar niet volledig functioneel zoals het frame

Verschil tussen AWT en Swing

AWT SCHOMMEL
  • Afhankelijk van het platform
  • Platform onafhankelijk
  • Volgt MVC niet
  • Volgt MVC
  • Kleinere componenten
  • Krachtiger componenten
  • Ondersteunt geen pluggable look en feel
  • Ondersteunt pluggable look en feel
  • Zwaargewicht
  • Lichtgewicht

Hiërarchie van Java Swing Class

hiërarchie-swing in java-edureka

Uitleg : Alle actieve componenten zoals JButton, JComboBox, JList, JLabel worden geërfd van de JComponent-klasse die kan worden toegevoegd aan de containerklassen. Containers zijn de vensters zoals frame en dialoogvensters. Basic swing-componenten zijn de bouwstenen van elke GUI-applicatie. Methoden zoals setLayout overschrijven de standaardlay-out in elke container. Containers zoals JFrame en JDialog kunnen alleen een component aan zichzelf toevoegen. Hieronder volgen enkele componenten met voorbeelden om te begrijpen hoe we ze kunnen gebruiken.

JButton-klasse

Het wordt gebruikt om een ​​gelabelde knop te maken. Met behulp van de ActionListener zal het resulteren in enige actie wanneer de knop wordt ingedrukt. Het neemt de klasse AbstractButton over en is platformonafhankelijk.

Voorbeeld:

import javax.swing. * public class voorbeeld {public static void main (String args []) {JFrame a = new JFrame ('example') JButton b = new JButton ('click me') b.setBounds (40,90, 85,20) a.add (b) a.setSize (300,300) a.setLayout (null) a.setVisible (true)}}

Uitgang:

string splitst meerdere scheidingstekens java

JTextField-klasse

Het neemt de klasse JTextComponent over en wordt gebruikt om tekst van één regel te bewerken.

Voorbeeld:

import javax.swing. * public class voorbeeld {public static void main (String args []) {JFrame a = nieuw JFrame ('voorbeeld') JTextField b = nieuw JTextField ('edureka') b.setBounds (50,100,200,30) a .add (b) a.setSize (300.300) a.setLayout (null) a.setVisible (true)}}

Uitgang:

JScrollBar-klasse

Het wordt gebruikt om een ​​schuifbalk toe te voegen, zowel horizontaal als verticaal.

Voorbeeld:

import javax.swing. * class example {example () {JFrame a = nieuw JFrame ('example') JScrollBar b = nieuwe JScrollBar () b.setBounds (90,90,40,90) a.add (b) a. setSize (300.300) a.setLayout (null) a.setVisible (true)} public static void main (String args []) {nieuw voorbeeld ()}}

Uitgang:

JPanel-klasse

Het erft de klasse JComponent en biedt ruimte voor een toepassing die elk ander onderdeel kan koppelen.

import java.awt. * import javax.swing. * public class Voorbeeld {Voorbeeld () {JFrame a = nieuw JFrame ('voorbeeld') JPanel p = nieuw JPanel () p.setBounds (40,70,200,200) JButton b = nieuwe JButton ('klik mij') b.setBounds (60,50,80,40) p.add (b) a.add (p) a.setSize (400,400) a.setLayout (null) a.setVisible (true)} openbaar static void main (String args []) {nieuw voorbeeld ()}}

Uitgang:

verschil tussen hash-map en hash-tabel

JMenu Clas s

Het erft de klasse JMenuItem en is een vervolgkeuzemenucomponent die wordt weergegeven vanaf de menubalk.

import javax.swing. * class Voorbeeld {JMenu-menu JMenuItem a1, a2 Voorbeeld () {JFrame a = nieuw JFrame ('Voorbeeld') menu = nieuw JMenu ('opties') JMenuBar m1 = nieuw JMenuBar () a1 = nieuw JMenuItem ( 'voorbeeld') a2 = nieuw JMenuItem ('voorbeeld1') menu.add (a1) menu.add (a2) m1.add (menu) a.setJMenuBar (m1) a.setSize (400.400) a.setLayout (null) a .setVisible (true)} public static void main (String args []) {nieuw voorbeeld ()}}

Uitgang:

JList-klasse

Het erft de JComponent-klasse, het object van de JList-klasse vertegenwoordigt een lijst met tekstitems.

import javax.swing. * public class Voorbeeld {Voorbeeld () {JFrame a = nieuw JFrame ('voorbeeld') DefaultListModel l = nieuw DefaultListModel () l.addElement ('eerste item') l.addElement ('tweede item') JList b = nieuwe JList (l) b.setBounds (100,100,75,75) a.add (b) a.setSize (400,400) a.setVisible (true) a.setLayout (null)} public static void main (String args [ ]) {nieuw voorbeeld ()}}

Uitgang:

JLabel-klasse

Het wordt gebruikt om tekst in een container te plaatsen. Het erft ook de klasse JComponent.

import javax.swing. * public class Voorbeeld {public static void main (String args []) {JFrame a = new JFrame ('example') JLabel b1 b1 = new JLabel ('edureka') b1.setBounds (40,40, 90,20) a.add (b1) a.setSize (400,400) a.setLayout (null) a.setVisible (true)}}

Uitgang:

JComboBox-klasse

Het erft de klasse JComponent en wordt gebruikt om een ​​pop-upmenu met keuzes weer te geven.

import javax.swing. * public class Voorbeeld {JFrame a Example () {a = new JFrame ('example') string courses [] = {'core java', 'advance java', 'java servlet'} JComboBox c = new JComboBox (cursussen) c.setBounds (40,40,90,20) a.add (c) a.setSize (400,400) a.setLayout (null) a.setVisible (true)} public static void main (String args [] ) {nieuw voorbeeld ()}}

Uitgang:

wat is chef in devops

Layout Manager

Om de componenten in een container te rangschikken gebruiken we de layout manager. Hieronder volgen verschillende lay-outmanagers:

  1. Rand lay-out

  2. Stroomindeling

  3. GridBag-indeling

Rand lay-out

De standaard lay-outmanager voor elk JFrame is BorderLayout. Het plaatst componenten op maximaal vijf plaatsen: boven, onder, links, rechts en in het midden.

Stroomindeling

FlowLayout legt de componenten eenvoudig achter elkaar op een rij, het is de standaard lay-outmanager voor elk JPanel.

GridBag-indeling

GridBagLayout plaatst de componenten in een raster waardoor de componenten meer dan één cel beslaan.

Voorbeeld: chatframe

import javax.swing. * import java.awt. * class Voorbeeld {public static void main (String args []) {JFrame frame = nieuw JFrame ('Chat Frame') frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE) frame.setSize (400 , 400) JMenuBar ob = nieuw JMenuBar () JMenu ob1 = nieuw JMenu ('FILE') JMenu ob2 = nieuw JMenu ('Help') ob.add (ob1) ob.add (ob2) JMenuItem m11 = nieuw JMenuItem ('Open ') JMenuItem m22 = new JMenuItem (' Save as ') ob1.add (m11) ob1.add (m22) JPanel panel = new JPanel () // het paneel is niet zichtbaar in output JLabel label = new JLabel (' Enter Text ') JTextField tf = new JTextField (10) // accepteert tot 10 karakters JButton send = new JButton (' Send ') JButton reset = nieuw JButton (' Reset ') paneel. Add (label) // Componenten toegevoegd met behulp van Flow Layout paneel .add (label) // Componenten toegevoegd met behulp van Flow Layout panel.add (tf) panel.add (send) panel.add (reset) JTextArea ta = nieuw JTextArea () frame.getContentPane (). add (BorderLayout.SOUTH, paneel ) frame.getContentPane (). add (BorderLayout.NORTH, tf) frame.getContentPane (). add (Border Layout.CENTER, ta) frame.setVisible (true)}}

Dit is een eenvoudig voorbeeld voor het maken van een GUI met swing in Java.

In dit artikel hebben we swing in Java en de hiërarchie van Java-swingklassen besproken. Met alle componenten die met swing in Java worden meegeleverd, wordt het eenvoudiger om geoptimaliseerde GUI-applicaties te bouwen. Java-programmeertaal is een gestructureerde programmeertaal en met de toenemende vraag wordt het uiterst belangrijk om alle concepten in . Schrijf u in voor Edureka's om uw leerproces een vliegende start te geven en een expert te worden in programmeren in Java .

Heeft u een vraag voor ons? vermeld dit in het commentaargedeelte van dit ‘Swing In Java’ artikel en we nemen zo snel mogelijk contact met u op.