Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 赢得的项目';不要在杰帕内尔周围走动_Java_Swing_Layout_Awt - Fatal编程技术网

Java 赢得的项目';不要在杰帕内尔周围走动

Java 赢得的项目';不要在杰帕内尔周围走动,java,swing,layout,awt,Java,Swing,Layout,Awt,这是代码 public class Main { public static int Health = 100; public static int ArmourPt = 0; public static int Gold = 250; public static JLabel Goldlbl = new JLabel("Gold:"); public static JLabel Healthlbl = new JLabel("Health:");

这是代码

public class Main {
    public static int Health = 100;
    public static int ArmourPt = 0;
    public static 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 String GoldString = (Integer.toString(Gold));
    public static JLabel GoldDis = new JLabel(GoldString);
    public static String HealthString = (Integer.toString(Health));
    public static JLabel HealthDis = new JLabel(HealthString);
    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();
        MPanel.setLayout(null);

        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));
        StatsPanel.add(Goldlbl);
        Goldlbl.setLocation(30, 14);
        StatsPanel.add(GoldDis);
        GoldDis.setLocation(35, 14);
        StatsPanel.add(Healthlbl);
        Healthlbl.setLocation(0, 0);
        MPanel.add(StatsPanel);

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

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

        JPanel ControlPanel = new JPanel();
        ControlPanel.setBorder(BorderFactory.createLineBorder(Color.BLACK, 4));
        ControlPanel.setSize(1135, 212);
        ControlPanel.setLocation(350, 450);
        MPanel.add(ControlPanel);

        MainWindow.setVisible(true);
    }
}
公共类主{
公共健康指数=100;
公共静态int ArmourPt=0;
公共静态整数=250;
公共静态JLabel Goldlbl=新JLabel(“Gold”);
公共静态JLabel Healthlbl=新JLabel(“健康:”);
公共静态JLabel ArmourPtLbl=新JLabel(“装甲点”);
公共静态字符串GoldString=(Integer.toString(Gold));
公共静态JLabel GoldDis=新JLabel(GoldString);
公共静态字符串HealthString=(Integer.toString(Health));
公共静态JLabel HealthDis=新JLabel(HealthString);
公共静态JFrame主窗口=新建JFrame();
公共静态智力伤害(智力伤害,智力装甲){
伤害=伤害-护甲+伤害/伤害+护甲/伤害*伤害-护甲+伤害+25;
如果(返回损坏<0){
返回损伤=0;
}
退货损坏;
}
公共静态void main(字符串[]args){
//TODO自动生成的方法存根
主窗口。设置大小(1500700);
MainWindow.setTitle(“Ampventure”);;
JPanel MPanel=(JPanel)MainWindow.getContentPane();
MPanel.setLayout(空);
JPanel StatsPanel=newjpanel();
StatsPanel.setBorder(BorderFactory.createLineBorder(Color.BLACK,4));
StatsPanel.设置尺寸(350450);
StatsPanel.setLocation(0,0);
StatsPanel.setMaximumSize(新尺寸(350450));
StatsPanel.add(Goldlbl);
Goldlbl.设定位置(30,14);
StatsPanel.add(GoldDis);
GoldDis.setLocation(35,14);
StatsPanel.add(Healthlbl);
Healthlbl.setLocation(0,0);
MPanel.add(StatsPanel);
JPanel InvPanel=新的JPanel();
InvPanel.setBorder(BorderFactory.createLineBorder(Color.BLACK,4));
InvPanel.setSize(350212);
InvPanel.setLocation(0450);
StatsPanel.setMaximumSize(新尺寸(350250));
MPanel.add(InvPanel);
JPanel DisplayPanel=新的JPanel();
DisplayPanel.setBorder(BorderFactory.createLineBorder(Color.BLACK,4));
DisplayPanel.setSize(1135450);
DisplayPanel.setLocation(350,0);
MPanel.add(显示面板);
JPanel ControlPanel=新的JPanel();
ControlPanel.setBorder(BorderFactory.createLineBorder(Color.BLACK,4));
控制面板。设置尺寸(1135212);
控制面板。设置位置(350450);
MPanel.add(控制面板);
MainWindow.setVisible(true);
}
}
应该发生什么:一个窗口分为四个部分,在右上部分有两个标签,分别名为Gold:和Health:显示,第一个标签间隔在第二个标签的上方

执行时发生的情况:标签Health:水平位于标签Gold:

我试着改变一切,但没有任何效果


我还意识到我的程序使用空布局管理器,但这是我的意图。没有错。

您只为
MPanel
设置了空布局。嵌套面板不会继承父级的布局
StatsPanel
具有
FlowLayout
,因为这是
JPanel
的默认布局
Goldlbl
Healthlbl
根据
FlowLayout
的规则定位。有关更多示例,请参见

如果打算使用绝对定位,则执行
StatsPanel.setLayout(null)。在绝对布局的情况下,必须为容器的每个子级调用
setbounds
方法。有关详细信息,请参阅

作为补充说明,发布的代码段的命名约定有点混乱。参见Java