簡體   English   中英

JFrame中JPanel的大小

[英]Size of JPanel in JFrame

我正在嘗試將 JPanel 添加到具有特定大小的 JFrame 中。 但無論我添加到 JPanel 的大小,它總是填滿整個 JFrame。 而且我還嘗試根據我的設置 position 重新定位 JButton 但它也不起作用。 任何建議或解釋任何人? 時間:P

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

public class Login {

//Creating a method just for the login page0
static void Login(){
    JFrame LoginFrame = new JFrame();
    JPanel Panel = new JPanel();

    Panel.setBounds(40,80,100,50);
    Panel.setBackground(Color.black);

    JButton Enter = new JButton();
    Enter.setBackground(Color.cyan);
    Enter.setBounds(50,100,80,30);
    Enter.setText("Enter");

    JButton Enter2 = new JButton();
    Enter.setBackground(Color.cyan);
    Enter.setBounds(50,100,80,30);
    Enter.setText("Enter");

    LoginFrame.setSize(420,720);
    LoginFrame.setBackground(Color.white);
    LoginFrame.setTitle("LoginFrame");
    LoginFrame.setVisible(true);
    LoginFrame.setLayout(null);
 }

public static void main(String[]args) {
    Login();
}
}

首先,變量名不應以大寫字符開頭。 這些是您可以在任何教科書或教程中找到的 Java 約定。 遵循示例。

我正在嘗試將 JPanel 添加到具有特定大小的 JFrame 中

為什么要使用隨機尺寸? Swing 的設計使每個組件都可以確定自己的尺寸,因此它可以在具有任何外觀和感覺的任何平台上工作。

任何建議

不要使用 null 布局。 不要使用 setBounds()。 Swing 旨在與布局管理器一起使用。 布局管理器使編碼更容易和更易於維護。 閱讀有關布局管理器的 Swing 教程

此外,您實際上需要將按鈕“添加”到面板並將面板“添加”到框架。 上面的教程演示展示了如何做到這一點。

如果您只是嘗試更改按鈕的大小,請使用:

button.setMargin( new Insets(20, 20, 20, 20) );

該按鈕將根據文本和指定的額外空間適當調整大小。

如果您希望您的面板有額外的空間,那么您可以使用:

panel.setBorder( new EmptyBorder(20, 20, 20, 20) );

閱讀有關如何使用邊框的 Swing 教程以獲取更多信息和示例。

或解釋

JPanel默認使用FlowLayout 因此布局管理器正在根據布局管理器的規則重置大小/位置。 如果您想要不同的布局,請使用不同的布局管理器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM