Иногда графический интерфейс показывает черный контент, а иногда все работает - PullRequest
0 голосов
/ 09 ноября 2019

Я сейчас играю в игру. Если я запускаю титульный экран, я иногда не получаю никакого контента, и экран становится черным, иногда при запуске программы все работает отлично, а иногда просто показывает заголовок, но без кнопки.

Вот код:

package de.creapermann.main;

import java.awt.Color;
import java.awt.Container;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

public class GUI {

    // create
    JFrame TitleScreen = new JFrame();
    Container con = new Container();
    JPanel TitlePanel = new JPanel();
    JPanel StartButtonPanel = new JPanel();
    JLabel Name = new JLabel();
    Font TitleFront = new Font("Times New Roman", Font.PLAIN, 170);
    Font StartFont = new Font("Times New Roman", Font.PLAIN, 70);
    JButton StartButton = new JButton();
    JPanel WaffePanel = new JPanel();
    JPanel SpielerPanel = new JPanel();

    TitleScreenHandler tsHandler = new TitleScreenHandler();

    public GUI() {

        // TITLE SCREEN

        // opti
        TitleScreen.setTitle("Shooter Game");
        TitleScreen.setExtendedState(JFrame.MAXIMIZED_BOTH);
        TitleScreen.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        TitleScreen.setResizable(false);
        TitleScreen.getContentPane().setBackground(Color.BLACK);
        TitleScreen.setLayout(null);
        TitleScreen.setVisible(true);
        TitleScreen.requestFocus();
        TitleScreen.addKeyListener(new KeyHandler());
        TitleScreen.add(con);

        con = TitleScreen.getContentPane();

        TitlePanel.setBounds(470, 150, 1000, 250);
        TitlePanel.setBackground(Color.BLACK);
        con.add(TitlePanel);

        Name.setText("Shooter Game");
        Name.setForeground(Color.WHITE);
        Name.setFont(TitleFront);
        TitlePanel.add(Name);

        StartButtonPanel.setBounds(800, 770, 300, 100);
        StartButtonPanel.setBackground(Color.BLACK);
        StartButtonPanel.setBorder(null);
        con.add(StartButtonPanel);

        StartButton.setBackground(Color.BLACK);
        StartButton.setForeground(Color.WHITE);
        StartButton.setFont(StartFont);
        StartButton.setText("Start");
        StartButton.setBorder(null);
        StartButton.addActionListener(tsHandler);

        StartButtonPanel.add(StartButton);

        WaffePanel.setLocation(914, 917);
        WaffePanel.setSize(30, 75);
        WaffePanel.setBackground(Color.WHITE);
        WaffePanel.setLayout(null);
        WaffePanel.setVisible(false);
        con.add(WaffePanel);

        SpielerPanel.setBounds(914 - 28, 992, 88, 32);
        SpielerPanel.setBackground(Color.WHITE);
        SpielerPanel.setLayout(null);
        SpielerPanel.setVisible(false);
        con.add(SpielerPanel);

    }

    // Main Game GUI

    public void MainGameGUI() {

        WaffePanel.setVisible(true);

        TitlePanel.setVisible(false);
        StartButtonPanel.setVisible(false);
        SpielerPanel.setVisible(true);

        con.addKeyListener(new KeyHandler());

    }

    public class TitleScreenHandler implements ActionListener {

        public void actionPerformed(ActionEvent e) {

            MainGameGUI();

        }

    }

}
...