18/03/2021, 09:41

SpringLayout trong Java Swing

GroupLayout trong Java Swing Lớp SpringLayout trong Java Swing đặt vị trí các con của Container liên kết với nó tuân theo một tập hợp các ràng buộc. Cú pháp để khai báo lớp javax.swing.SpringLayout là: public class SpringLayout extends Object implements ...

GroupLayout trong Java Swing

Lớp SpringLayout trong Java Swing đặt vị trí các con của Container liên kết với nó tuân theo một tập hợp các ràng buộc. Cú pháp để khai báo lớp javax.swing.SpringLayout là:


public class SpringLayout
   extends Object
      implements LayoutManager2

Lớp này có SpringLayout() constructor để tạo một SpringLayout mới.

Nội dung chính

  • Lớp này kế thừa các phương thức từ các lớp sau:
  • Lớp SpringLayout bao gồm các trường sau:
  • Ví dụ lớp SpringLayout

Lớp này kế thừa các phương thức từ các lớp sau:

  • java.lang.Object


Lớp SpringLayout bao gồm các trường sau:

  • static String BASELINE: Xác định baseline của một thành phần.

  • static String EAST: Xác định cạnh phải của hình chữ nhật bao của một thành phần.

  • static String HEIGHT: Xác định chiều cao của hình chữ nhật bao của một thành phần.

  • static String HORIZONTAL_CENTER: Xác định sự căn chỉnh ngang của hình chữ nhật bao của một thành phần.

  • static String NORTH: Xác định cạnh trên của hình chữ nhật bao của một thành phần.

  • static String SOUTH: Xác định cạnh dưới của hình chữ nhật bao của một thành phần.

  • static String VERTICAL_CENTER: Xác định sự căn chỉnh dọc của hình chữ nhật bao của một thành phần.

  • static String WEST: Xác định cạnh trái của hình chữ nhật bao của một thành phần.

  • static String WIDTH: Xác định độ rộng của hình chữ nhật bao của một thành phần.

Ví dụ lớp SpringLayout


package vn.viettuts.swing;

import java.awt.FlowLayout;
import java.awt.GridLayout;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SpringLayout;
import javax.swing.WindowConstants;

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

    public SpringLayoutExam1() {
        prepareGUI();
    }

    public static void main(String[] args) {
        SpringLayoutExam1 demo = new SpringLayoutExam1();
        demo.showSpringLayoutDemo();
    }

    private void prepareGUI() {
        mainFrame = new JFrame();
        mainFrame.setSize(400, 250);
        mainFrame.setLayout(new GridLayout(3, 1));
        headerLabel = new JLabel("", JLabel.CENTER);
        statusLabel = new JLabel("", JLabel.CENTER);
        statusLabel.setSize(350, 100);
        controlPanel = new JPanel();
        controlPanel.setLayout(new FlowLayout());
        mainFrame.add(headerLabel);
        mainFrame.add(controlPanel);
        mainFrame.add(statusLabel);
        mainFrame.setVisible(true);
        mainFrame.setTitle("Ví dụ SpringLayout trong Java Swing");
        mainFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }

    private void showSpringLayoutDemo() {
        headerLabel.setText("Layout in action: SpringLayout");
        SpringLayout layout = new SpringLayout();
        JPanel panel = new JPanel();
        panel.setLayout(layout);
        JLabel label = new JLabel("Enter Name: ");
        JTextField textField = new JTextField("", 15);
        panel.add(label);
        panel.add(textField);
        layout.putConstraint(SpringLayout.WEST, label, 5, SpringLayout.WEST, controlPanel);
        layout.putConstraint(SpringLayout.NORTH, label, 5, SpringLayout.NORTH, controlPanel);
        layout.putConstraint(SpringLayout.WEST, textField, 5, SpringLayout.EAST, label);
        layout.putConstraint(SpringLayout.NORTH, textField, 5, SpringLayout.NORTH, controlPanel);
        layout.putConstraint(SpringLayout.EAST, panel, 5, SpringLayout.EAST, textField);
        layout.putConstraint(SpringLayout.SOUTH, panel, 5, SpringLayout.SOUTH, textField);
        controlPanel.add(panel);
        mainFrame.setVisible(true);
    }
}

Chạy chương trình trên cho kết quả như sau:

SpringLayout trong Java Swing
GroupLayout trong Java Swing
0