Lớp SpringLayout trong Java Swing



Lớp SpringLayout đặ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.

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 com.vietjack.gui;

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

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

   public SwingLayoutDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      SwingLayoutDemo swingLayoutDemo = new SwingLayoutDemo();  
      swingLayoutDemo.showSpringLayoutDemo();       
   }
      
   private void prepareGUI(){
      mainFrame = new JFrame("Vi du Java Swing");
      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 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);  
   } 
}

Mọi người cho thể tham gia khóa học thứ 4 của vietjackteam vào cuối tháng 09/2017 do anh Nguyễn Thanh Tuyền, admin vietjack.com trực tiếp giảng dạy tại Hà Nội. Chi tiết nội dung khóa học tham khỏa link : Khóa học Java.Các bạn học CNTT, điện tử viễn thông, đa phương tiện, điện-điện tử, toán tin có thể theo học khóa này. Khóa học cũng đưa 200 câu hỏi phỏng vấn java trên https://www.javatpoint.com/corejava-interview-questions vào nội dung để giúp các bạn dễ dàng vượt qua kì phỏng vấn

Mọi người có thể xem demo nội dung khóa học tại địa chỉ Video demo khóa học Offline

Các bạn ở xa học không có điều kiện thời gian có thể tham dự khóa Java online để chủ động cho việc học tập. Thông tin khóa học tại Khóa học Java Online trên Udemy

Follow fanpage của team https://www.facebook.com/vietjackteam/ hoặc facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.


layout_trong_java_swing.jsp

Demo một bài giảng trong khóa học online tại vietjackteam.