我试图用面板将一个窗口分成几个部分,但它们都调整为一个巨大的框架 导入精灵。*; 导入javax.swing.*; 导入java.awt.*; 公共班机{ 公共卫生=100; 公共int ArmourPt=0; 公共int黄金=250; 公共静态JLabel Goldlbl=新JLabel(“Gold”); 公共静态JLabel Healthlbl=新JLabel(“健康:”); 公共静态JLabel ArmourPtLbl=新JLabel(“装甲点”); 公共静态JFrame主窗口=新建JFrame(); 公共静态智力伤害(智力伤害,智力装甲){ 伤害=伤害-护甲+伤害/伤害+护甲/伤害*伤害-护甲+伤害+25; 如果(返回损坏

我试图用面板将一个窗口分成几个部分,但它们都调整为一个巨大的框架 导入精灵。*; 导入javax.swing.*; 导入java.awt.*; 公共班机{ 公共卫生=100; 公共int ArmourPt=0; 公共int黄金=250; 公共静态JLabel Goldlbl=新JLabel(“Gold”); 公共静态JLabel Healthlbl=新JLabel(“健康:”); 公共静态JLabel ArmourPtLbl=新JLabel(“装甲点”); 公共静态JFrame主窗口=新建JFrame(); 公共静态智力伤害(智力伤害,智力装甲){ 伤害=伤害-护甲+伤害/伤害+护甲/伤害*伤害-护甲+伤害+25; 如果(返回损坏,java,swing,jpanel,awt,Java,Swing,Jpanel,Awt,当执行此操作时,应该将两个面板移到一边,并且具有不同的大小,总计为Y和350 X。相反,它只会使它们的大小相同,并在窗口周围形成一个边框 我如何让它这样做 (编辑)我已经纠正了打字错误。只有统计面板才做它应该做的。 另外,我不想使用布局管理器。我想自己设置所有内容的大小。您输入了一个错误。您添加统计面板两次 此外,您可能需要设置布局管理器 编辑:响应您的编辑。 与所有面板一样,内容窗格将默认为Flow布局。如果要自己设置大小和位置,则需要将其设置为使用其他布局管理器或不使用布局管理器。我建议不

当执行此操作时,应该将两个面板移到一边,并且具有不同的大小,总计为Y和350 X。相反,它只会使它们的大小相同,并在窗口周围形成一个边框

我如何让它这样做

(编辑)我已经纠正了打字错误。只有统计面板才做它应该做的。
另外,我不想使用布局管理器。我想自己设置所有内容的大小。

您输入了一个错误。您添加统计面板两次

此外,您可能需要设置布局管理器

编辑:响应您的编辑。 与所有面板一样,内容窗格将默认为Flow布局。如果要自己设置大小和位置,则需要将其设置为使用其他布局管理器或不使用布局管理器。我建议不要这样做,因为您的代码将无法轻松处理不同的分辨率和屏幕大小

以下是有关不使用布局管理器进行编码的信息


尝试使用
GridBaglayout


默认情况下,内容窗格可能有一个布局管理器。尝试调用
MPanel.setLayout(null)在添加组件之前。@user2839482我更新了我的答案以匹配您的编辑。谢谢!我不想使用布局管理器。事情需要精确定位。不,内容窗格总是默认为BorderLayout,而不是FlowLayout。
import Sprites.*;

import javax.swing.*;

import java.awt.*;
public class Main {
public int Health = 100;
public int ArmourPt = 0;
public int Gold = 250;
public static JLabel Goldlbl = new JLabel("Gold:");
public static JLabel Healthlbl = new JLabel("Health:");
public static JLabel ArmourPtLbl = new JLabel("Armour Points");
public static JFrame MainWindow = new JFrame();
public static int CalcDamage(int Damage, int Armour){
    int ReturnDamage = Damage - Armour + Damage / Damage + Armour / Damage * Damage -                     Armour + Damage + 25 ;
    if(ReturnDamage < 0){
        ReturnDamage = 0;
    }
    return ReturnDamage;

}

public static void main(String[] args) {
    // TODO Auto-generated method stub
    MainWindow.setSize(1500, 700);
    MainWindow.setTitle("Ampventure");;

    JPanel MPanel = (JPanel)MainWindow.getContentPane();

    JPanel StatsPanel = new JPanel();
    StatsPanel.setBorder(BorderFactory.createLineBorder(Color.BLACK, 4));
    StatsPanel.setSize(350, 450);
    StatsPanel.setLocation(0, 0);
    StatsPanel.setMaximumSize(new Dimension (350, 450));
    MPanel.add(StatsPanel);

    JPanel InvPanel = new JPanel();
    InvPanel.setBorder(BorderFactory.createLineBorder(Color.BLACK, 4));
    InvPanel.setSize(350, 250);
    InvPanel.setLocation(0, 450);
    StatsPanel.setMaximumSize(new Dimension (350, 250));
    MPanel.add(InvPanel);

    MainWindow.setVisible(true);

    }

}