我试图将窗口分成带有面板的部分,但它们都调整到一个巨大的框架

时间:2013-11-19 14:22:31

标签: java swing jpanel awt

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);

    }

}

当执行时,这是支持使两个面板偏向一侧并且具有不同的尺寸,总计Y和350 X.相反,它只是使它们具有相同的尺寸并且仅在窗口周围形成边框。

我如何做到这一点?

(编辑)我修正了错字。并且只有统计小组会做它应该做的事情。 我也不想使用布局管理器。我想自己设置和调整大小。

2 个答案:

答案 0 :(得分:1)

你有一个错字。您要两次添加统计信息面板。

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

http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html

编辑:回复您的修改。 内容窗格将默认为所有面板的Flow Layout。如果要自己设置大小和位置,则需要将其设置为使用不同的布局管理器或不使用布局管理器。我建议不要这样做,因为你的代码不能轻易处理不同的分辨率和屏幕尺寸。

以下是没有布局管理器的编码信息。

http://docs.oracle.com/javase/tutorial/uiswing/layout/none.html

答案 1 :(得分:0)

尝试使用GridBaglayout

GridBagLayout