JFrame 中 JPanel 的大小
Size of JPanel in JFrame
我正在尝试将具有特定大小的 JPanel 添加到我的 JFrame 中。但是无论我添加到 JPanel 的大小如何,它总是会填满整个 JFrame。而且我还尝试根据我的设置位置重新定位 JButton,但它也不起作用。有任何建议或解释吗? Tq: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 约定。按照示例进行操作。
I am trying to add a JPanel into my JFrame with a specific size
为什么使用随机尺寸? Swing 的设计使每个组件都将确定自己的大小,因此它可以在具有任何外观的任何平台上工作。
Any recommendations
不要使用空布局。不要使用 setBounds()。 Swing 旨在与布局管理器一起使用。布局管理器使编码更容易和更易于维护。阅读 Layout Managers
上的 Swing 教程
此外,您实际上需要将按钮“添加”到面板并将面板“添加”到框架。上面的教程演示展示了如何做到这一点。
如果您只是想更改按钮的大小,请使用:
button.setMargin( new Insets(20, 20, 20, 20) );
按钮的大小将根据文本和指定的额外 space 适当调整。
如果你想让你的面板有额外的space那么你可以使用:
panel.setBorder( new EmptyBorder(20, 20, 20, 20) );
阅读 How to Use Borders 上的 Swing 教程以获取更多信息和示例。
or explanations
JPanel
默认使用FlowLayout
。所以布局管理器正在根据布局管理器的规则重置 size/location。如果您想要不同的布局,请使用不同的布局管理器。
我正在尝试将具有特定大小的 JPanel 添加到我的 JFrame 中。但是无论我添加到 JPanel 的大小如何,它总是会填满整个 JFrame。而且我还尝试根据我的设置位置重新定位 JButton,但它也不起作用。有任何建议或解释吗? Tq: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 约定。按照示例进行操作。
I am trying to add a JPanel into my JFrame with a specific size
为什么使用随机尺寸? Swing 的设计使每个组件都将确定自己的大小,因此它可以在具有任何外观的任何平台上工作。
Any recommendations
不要使用空布局。不要使用 setBounds()。 Swing 旨在与布局管理器一起使用。布局管理器使编码更容易和更易于维护。阅读 Layout Managers
上的 Swing 教程此外,您实际上需要将按钮“添加”到面板并将面板“添加”到框架。上面的教程演示展示了如何做到这一点。
如果您只是想更改按钮的大小,请使用:
button.setMargin( new Insets(20, 20, 20, 20) );
按钮的大小将根据文本和指定的额外 space 适当调整。
如果你想让你的面板有额外的space那么你可以使用:
panel.setBorder( new EmptyBorder(20, 20, 20, 20) );
阅读 How to Use Borders 上的 Swing 教程以获取更多信息和示例。
or explanations
JPanel
默认使用FlowLayout
。所以布局管理器正在根据布局管理器的规则重置 size/location。如果您想要不同的布局,请使用不同的布局管理器。