Java 中的 setBounds()方法及其用途

Mehvish Ashiq 2024年2月15日
Java 中的 setBounds()方法及其用途

我們的目標是瞭解 setBounds() 方法及其在 Java 圖形使用者介面 (GUI) 中的用途。我們將簡要學習 setBounds(),為什麼要使用它,以及如何在程式碼中使用它。

在 Java 中 setBounds() 方法及其的使用

在 Java 圖形使用者介面中,佈局管理器自動決定新新增元件的大小和位置。

例如,FlowLayout 將元件新增到一行中;如果元件不適合當前行,它只會開始一個新行。

另一個例子是 BorderLayout,它在 bottomtoprightleftcenter 中新增元件,並在中心區域留下額外的空間。

如果我們不允許使用這些佈局管理器並建議手動設定元件的大小和位置,我們該怎麼辦?在這裡,setBounds() 方法出現了。

我們使用 setBounds() 方法定義元件的邊界矩形。

setBounds() 接受四個引數。前兩個是用於定位元件的 xy 座標。

後兩個引數是 widthheight 用於設定元件的大小。

setBounds(int x - coordinate, int y - coordinate, int width, int height)

框架的佈局管理器可以為 null 以手動設定元件的大小和位置。讓我們使用下面給出的程式碼片段來理解這一點。

package com.setbounds.learnsetbounds;

import javax.swing.*;

public class LearnSetBounds {
  public static void main(String[] args) {
    JFrame jframe = new JFrame("Learning SetBounds Method");
    // set the size of the window (width and height)
    jframe.setSize(375, 250);
    // Setting layout as null
    jframe.setLayout(null);

    // Creating Button
    JButton jbutton = new JButton("Learning setBounds");
    // Setting position and size of a button
    jbutton.setBounds(80, 30, 150, 40);

    // add button to the jframe
    jframe.add(jbutton);
    // close window on close event
    jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    // center the window on the computer screen
    jframe.setLocationRelativeTo(null);
    // show the window
    jframe.setVisible(true);
  }
}

輸出:

setbound 方法及其在 java 中的使用——輸出一

setBound() 方法更新為 setBounds(30, 80, 150, 40); 並觀察下面給出的輸出。請記住,xy 指定元件的 top-left 位置。

輸出:

setbound 方法及其在 java 中的使用——輸出二

在上面給出的程式碼片段中,我們使用了 javax.swing.JFrame 類,它的工作方式類似於所有元件(標籤、文字欄位和按鈕)所在的主視窗。setSize() 方法用於指定視窗的大小。

預設情況下,元件會新增到流中的單行中,如果元件不適合,則會移動到新行。FlowLayout 管理器會導致此預設行為。

由於我們要手動設定元素的大小和位置,我們需要在使用 setBound() 方法之前使用 setLayout(null)

此外,當應用程式收到關閉視窗事件時,會呼叫 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)。如果使用者按下視窗上的關閉 (X) 按鈕,作業系統會生成 關閉視窗 事件,進一步傳送到 Java 應用程式進行處理。

setVisible(true) 方法顯示視窗。請記住,如果此方法獲得 false 值,它也可以隱藏視窗。

此外,setLocationRelativeTo(null) 方法用於在計算機螢幕上將視窗居中。

作者: Mehvish Ashiq
Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook