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

Trình quản lý bố cục (tiếng Anh: Layout manager) là những thành phần phần mềm được sử dụng trong bộ công cụ widget, dùng để bố trí các thành tố điều khiển đồ họa theo vị trí tương đối của chúng mà không cần sử dụng đơn vị độ dài. Việc xây dựng bố cục thành phần theo cách này thường tự nhiên hơn so với việc xây dựng bố cục dựa trên vị trí của các thành phần theo pixel hoặc đơn vị độ dài chung, do đó, một số bộ công cụ widget phổ biến có sẵn tính năng này theo mặc định. Các bộ công cụ widget cung cấp chức năng này thường có thể phân thành hai nhóm:

  • Nhóm quy định hành vi của bố cục được viết trong các container đồ họa đặc biệt. Ví dụ như XUL và bộ công cụ widget của .NET Framework (cả trong Windows FormsXAML).
  • Nhóm quy định hành vi của bố cục được viết trong trình quản lý bố cục, có thể áp dụng cho mọi container đồ họa. Ví dụ như bộ công cụ widget của Swing (một phần của Java API).

Trong XUL, ví dụ như container vbox Lưu trữ 2012-02-24 tại Wayback Machine dùng để xếp các thành phần lên nhau.

<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>

<window id="vbox example" title="Example"
        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

<vbox>
  <button id="yes" label="Yes"/>
  <button id="no" label="No"/>
  <button id="maybe" label="Maybe"/>
</vbox>

</window>

Đoạn mã này hiển thị 3 nút (button) được xếp chồng lên nhau trong một hộp dọc (vertical box).

Container DockPanel bố trí các thành phần con theo những đặc tính Dock của chúng.

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      WindowTitle="myDock Panel">
  <DockPanel>
      <TextBlock DockPanel.Dock="Top">Top 1</TextBlock>
      <TextBlock DockPanel.Dock="Top">Top 2</TextBlock>
      <TextBlock DockPanel.Dock="Top">Top 3</TextBlock>
      <TextBlock DockPanel.Dock="Top">Top 4</TextBlock>
  </DockPanel>
</Page>

Mã này hiển thị 4 khối văn bản (text block) chồng lên nhau.

Trình quản lý bố cục FlowLayout sắp xếp các thành phần theo luồng định hướng (directional flow), giống như các dòng văn bản trong một đoạn văn. Nó sắp xếp các thành phần theo chiều ngang cho đến khi không còn thành phần nào vừa nữa trên cùng một dòng, sau đó đặt chúng trên một dòng khác. Các trình quản lý bố cục khác gồm trình quản lý GridLayout sắp xếp các thành phần ở dạng lưới (grid form) và trình quản lý BorderLayout thì sắp xếp các thành phần vào năm phần của khung (frame), như: south (nam), north (bắc), west (tây), east (đông) và center (trung tâm).

import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.FlowLayout;
import java.awt.Container;

public class Example {
    private JFrame frame;

    public Example() {
        frame = new JFrame("FlowLayout Demo");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLayout(new FlowLayout());
        frame.add((new JButton("Button 1")));
        frame.add((new JButton("Button 2")));
        frame.add((new JButton("Button 3")));
        frame.add((new JButton("Long-Named Button 4")));
        frame.add((new JButton("5")));
        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        Example ex = new Example();
    }
}

Mã này hiển thị 5 nút cạnh nhau trên cùng một dòng:

Ví dụ FlowLayout

Tham khảo

[sửa | sửa mã nguồn]

Liên kết ngoài

[sửa | sửa mã nguồn]
Chúng tôi bán
Bài viết liên quan
Giới thiệu Cosmo the Space Dog trong MCU
Giới thiệu Cosmo the Space Dog trong MCU
Chú chó vũ trụ Cosmo cuối cùng cũng đã chính thức gia nhập đội Vệ binh dải ngân hà trong Guardians of the Galaxy
Tại sao Hamas lại tấn công Israel?
Tại sao Hamas lại tấn công Israel?
Vào ngày 7 tháng 10, một bình minh mới đã đến trên vùng đất Thánh, nhưng không có ánh sáng nào có thể xua tan bóng tối của sự hận thù và đau buồn.
[Genshin Impact] Câu truyện về ma điểu và tràng thiếu niên
[Genshin Impact] Câu truyện về ma điểu và tràng thiếu niên
Khái quát lại câu chuyện trên đảo Tsurumi Genshin Impact
MUALANI – Lối chơi, hướng build và đội hình
MUALANI – Lối chơi, hướng build và đội hình
Mualani có chỉ số HP cơ bản cao thuộc top 4 game, cao hơn cả các nhân vật như Yelan hay Nevulette