Swing trong Java: Biết cách tạo GUI với các ví dụ



: tìm hiểu khái niệm về swing trong java với trình quản lý bố cục và phân cấp lớp swing với trình diễn thực tế về ứng dụng GUI.

Swing trong java là một phần của lớp nền tảng Java nhẹ và độc lập với nền tảng. Nó được sử dụng để tạo các ứng dụng dựa trên cửa sổ. Nó bao gồm các thành phần như nút, thanh cuộn, trường văn bản, v.v. Kết hợp tất cả các thành phần này lại với nhau tạo nên giao diện người dùng đồ họa. Trong bài viết này, chúng ta sẽ xem xét các khái niệm liên quan đến quá trình xây dựng các ứng dụng bằng cách sử dụng swing trong . Sau đây là các khái niệm được thảo luận trong bài viết này:

Swing Trong Java là gì?

Swing trong Java là một bộ công cụ GUI nhẹ có nhiều tiện ích con để xây dựng các ứng dụng dựa trên cửa sổ được tối ưu hóa. Nó là một phần của JFC (Java Foundation Classes). Nó được xây dựng trên AWT API và hoàn toàn được viết bằng . Nó độc lập với nền tảng không giống như AWT và có các thành phần nhẹ.





Việc xây dựng ứng dụng trở nên dễ dàng hơn vì chúng ta đã có các thành phần GUI như nút, hộp kiểm, v.v. Điều này rất hữu ích vì chúng ta không phải bắt đầu lại từ đầu.

Lớp container

Bất kì mà có các thành phần khác trong nó được gọi là một lớp vùng chứa. Để xây dựng các ứng dụng GUI, cần ít nhất một lớp vùng chứa.



Sau đây là ba loại lớp vùng chứa:

  1. Bảng điều khiển - Nó được sử dụng để tổ chức các thành phần trên một cửa sổ

  2. Khung - Một cửa sổ hoạt động đầy đủ với các biểu tượng và tiêu đề



  3. Hộp thoại - Nó giống như một cửa sổ bật lên nhưng không có đầy đủ chức năng như khung

Sự khác biệt giữa AWT và Swing

AWT LUNG LAY
  • Nền tảng phụ thuộc
  • Nền tảng độc lập
  • Không theo MVC
  • Theo dõi MVC
  • Thành phần ít hơn
  • Các thành phần mạnh mẽ hơn
  • Không hỗ trợ giao diện có thể cắm được
  • Hỗ trợ giao diện có thể cắm được
  • Hạng nặng
  • Nhẹ

Phân cấp lớp Java Swing

phân cấp-xoay trong java-edureka

Giải trình : Tất cả các thành phần trong swing như JButton, JComboBox, JList, JLabel được kế thừa từ lớp JComponent có thể được thêm vào các lớp vùng chứa. Vùng chứa là các cửa sổ như khung và hộp thoại. Các thành phần cơ bản của swing là các khối xây dựng của bất kỳ ứng dụng gui nào. Các phương thức như setLayout ghi đè bố cục mặc định trong mỗi vùng chứa. Các vùng chứa như JFrame và JDialog chỉ có thể thêm một thành phần vào chính nó. Sau đây là một vài thành phần với các ví dụ để hiểu cách chúng ta có thể sử dụng chúng.

Lớp JButton

Nó được sử dụng để tạo một nút có nhãn. Sử dụng ActionListener nó sẽ dẫn đến một số hành động khi nút được nhấn. Nó kế thừa lớp AbstractButton và độc lập với nền tảng.

Thí dụ:

import javax.swing. * public class example {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.setVosystem (true)}}

Đầu ra:

cách sử dụng phương thức phân tách trong java

Lớp JTextField

Nó kế thừa lớp JTextComponent và nó được sử dụng để cho phép chỉnh sửa văn bản dòng đơn.

Thí dụ:

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

Đầu ra:

Lớp JScrollBar

Nó được sử dụng để thêm thanh cuộn, cả ngang và dọc.

Thí dụ:

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

Đầu ra:

Lớp JPanel

Nó kế thừa lớp JComponent và cung cấp không gian cho một ứng dụng có thể đính kèm bất kỳ thành phần nào khác.

import java.awt. * import javax.swing. * public class Ví dụ {Example () {JFrame a = new JFrame ('example') JPanel p = new JPanel () p.setBounds (40,70,200,200) JButton b = new JButton ('nhấp vào tôi') b.setBounds (60,50,80,40) p.add (b) a.add (p) a.setSize (400,400) a.setLayout (null) a.setVosystem (true)} công khai static void main (String args []) {new Ví dụ ()}}

Đầu ra:

JMenu Clas S

Nó kế thừa lớp JMenuItem và là một thành phần menu kéo xuống được hiển thị từ thanh menu.

import javax.swing. * class Ví dụ {JMenu menu JMenuItem a1, a2 Ví dụ () {JFrame a = new JFrame ('Ví dụ') menu = new JMenu ('options') JMenuBar m1 = new JMenuBar () a1 = new JMenuItem ( 'example') a2 = new JMenuItem ('example1') menu.add (a1) menu.add (a2) m1.add (menu) a.setJMenuBar (m1) a.setSize (400.400) a.setLayout (null) a .setVible (true)} public static void main (String args []) {new Ví dụ ()}}

Đầu ra:

Lớp JList

Nó kế thừa lớp JComponent, đối tượng của lớp JList đại diện cho một danh sách các mục văn bản.

dữ liệu phiên bản cho một lớp java
import javax.swing. * public class Ví dụ {Example () {JFrame a = new JFrame ('example') DefaultListModel l = new DefaultListModel () l.addElement ('item đầu tiên') l.addElement ('item thứ hai') JList b = new JList (l) b.setBounds (100,100,75,75) a.add (b) a.setSize (400,400) a.setVosystem (true) a.setLayout (null)} public static void main (String args [ ]) {new Ví dụ ()}}

Đầu ra:

Lớp JLabel

Nó được sử dụng để đặt văn bản trong một vùng chứa. Nó cũng kế thừa lớp JComponent.

import javax.swing. * public class Ví dụ {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.setVosystem (true)}}

Đầu ra:

Lớp JComboBox

Nó kế thừa lớp JComponent và được sử dụng để hiển thị menu lựa chọn bật lên.

import javax.swing. * public class Ví dụ {JFrame a Example () {a = new JFrame ('example') string Course [] = {'core java', 'advanced java', 'java servlet'} JComboBox c = new JComboBox (các khóa học) c.setBounds (40,40,90,20) a.add (c) a.setSize (400,400) a.setLayout (null) a.setVbroken (true)} public static void main (String args [] ) {new Ví dụ ()}}

Đầu ra:

Trình quản lý bố cục

Để sắp xếp các thành phần bên trong một vùng chứa, chúng ta sử dụng trình quản lý bố cục. Sau đây là một số trình quản lý bố cục:

  1. Bố cục đường viền

  2. Bố cục luồng

  3. Bố cục GridBag

    sức mạnh của trong java

Bố cục đường viền

Trình quản lý bố cục mặc định cho mọi JFrame là BorderLayout. Nó đặt các thành phần ở tối đa năm vị trí là trên cùng, dưới cùng, trái, phải và trung tâm.

Bố cục dòng chảy

FlowLayout chỉ đơn giản là đặt các thành phần lần lượt trong một hàng, nó là trình quản lý bố cục mặc định cho mọi JPanel.

Bố cục GridBag

GridBagLayout đặt các thành phần trong một lưới cho phép các thành phần trải dài hơn một ô.

Ví dụ: Khung trò chuyện

import javax.swing. * import java.awt. * class Ví dụ {public static void main (String args []) {JFrame frame = new JFrame ('Chat Frame') frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE) frame.setSize (400 , 400) JMenuBar ob = new JMenuBar () JMenu ob1 = new JMenu ('FILE') JMenu ob2 = new JMenu ('Help') ob.add (ob1) ob.add (ob2) JMenuItem m11 = new JMenuItem ('Mở ') JMenuItem m22 = new JMenuItem (' Lưu dưới dạng ') ob1.add (m11) ob1.add (m22) JPanel panel = new JPanel () // bảng không hiển thị trong đầu ra JLabel label = new JLabel (' Nhập Văn bản ') JTextField tf = new JTextField (10) // chấp nhận tối đa 10 ký tự JButton send = new JButton (' Send ') JButton reset = new JButton (' Reset ') panel.add (label) // Các thành phần được thêm bằng bảng điều khiển Flow Layout .add (label) // Các thành phần được thêm bằng cách sử dụng Flow Layout panel.add (tf) panel.add (send) panel.add (reset) JTextArea ta = new JTextArea () frame.getContentPane (). add (BorderLayout.SOUTH, panel ) frame.getContentPane (). add (BorderLayout.NORTH, tf) frame.getContentPane (). add (Border Layout.CENTER, ta) frame.setVosystem (true)}}

Đây là một ví dụ đơn giản để tạo GUI bằng swing trong Java.

Trong bài viết này, chúng ta đã thảo luận về swing trong Java và phân cấp của các lớp swing trong Java. Với tất cả các thành phần đi kèm với swing trong Java, việc xây dựng các ứng dụng GUI được tối ưu hóa trở nên dễ dàng hơn. Ngôn ngữ lập trình Java là một ngôn ngữ lập trình có cấu trúc và với nhu cầu ngày càng cao, việc nắm vững tất cả các khái niệm trong . Để bắt đầu việc học của bạn và trở thành chuyên gia về lập trình java, hãy đăng ký Edureka’s .

Có một câu hỏi cho chúng tôi? vui lòng đề cập đến vấn đề này trong phần nhận xét của bài viết ‘Swing In Java’ này và chúng tôi sẽ liên hệ lại với bạn trong thời gian sớm nhất.