微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JFrame 中 JPanel 的大小

如何解决JFrame 中 JPanel 的大小

我正在尝试将 JPanel 添加到我的 JFrame 中,并具有特定大小。但是无论我添加到 JPanel 的大小如何,它总是填满整个 JFrame。而且我还尝试根据我的设置位置重新定位 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,30);
    Enter.setText("Enter");

    JButton Enter2 = new JButton();
    Enter.setBackground(Color.cyan);
    Enter.setBounds(50,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 的设计使每个组件都可以确定自己的大小,因此它可以在具有任何外观和感觉的任何平台上运行。

任何建议

不要使用空布局。不要使用 setBounds()。 Swing 旨在与布局管理器一起使用。布局管理器使编码更容易且更易于维护。阅读 Layout Managers

上的 Swing 教程

此外,您实际上需要将按钮“添加”到面板并将面板“添加”到框架。上面的教程演示展示了如何做到这一点。

如果您只是想更改按钮的大小,请使用:

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

按钮将根据文本和指定的额外空间适当调整大小。

如果你想让你的面板有额外的空间,那么你可以使用:

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

阅读 How to Use Borders 上的 Swing 教程,了解更多信息和示例。

或解释

JPanel 默认使用 FlowLayout。所以布局管理器正在根据布局管理器的规则重置大小/位置。如果您想要不同的布局,请使用不同的布局管理器。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。