Swing HUD

Javinner

Top Contributor
Hallo Forum,

stehe vor einem Problem, welches ich nicht lösen kann. Programmiere gerade ein SpaceAdventure in 2D und würde gerne ein HUD-Display unten links anzeigen lassen, jedoch bekomme ich es nicht hin. Es bleibt immer oben in der Mitte stehen.
Was mache ich falsch?

Mein Code:
Java:
public class SpaceWindow extends JFrame
{

    public final static int SPACE_WIDTH = 1920;
    public final static int SPACE_HEIGHT = 1200;

    private final SpaceDrawBoard spaceDrawBoard;

    public SpaceWindow()
    {
        createSpaceWindow();
        spaceDrawBoard = new SpaceDrawBoard();
        add(spaceDrawBoard);
    }

    private void createSpaceWindow()
    {
        setTitle(getClass().getSimpleName());
        setSize(new Dimension(SPACE_WIDTH, SPACE_HEIGHT));
        setVisible(true);
        setResizable(false);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

}
Java:
public class SpaceDrawBoard extends JPanel
{

    private final HUD hud;

    public SpaceDrawBoard()
    {
        createSDB();
        hud = new HUD();
        add(hud);
    }

    private void createSDB()
    {
        setFocusable(true);
        setPreferredSize(new Dimension(SpaceWindow.SPACE_WIDTH, SpaceWindow.SPACE_HEIGHT));
        setBorder(new TitledBorder(getClass().getSimpleName()));
    }

}
Java:
import java.awt.Dimension;
import javax.swing.JPanel;
import javax.swing.border.TitledBorder;

public class HUD extends JPanel
{
    private final Dimension hud_dimension = new Dimension(500, 100);

    public HUD()
    {
        createHUD();
    }

    private void createHUD()
    {
        setFocusable(true);
        setPreferredSize(hud_dimension);
        setBounds(100, SpaceWindow.SPACE_HEIGHT - 250, hud_dimension.width, hud_dimension.height);
        setBorder(new TitledBorder("HUD"));
    }
}
 

Anhänge

  • SpaceAdventure.PNG
    SpaceAdventure.PNG
    55,3 KB · Aufrufe: 33

Neue Themen


Oben