java - JPanel 仅在最小化框架和最大化框架之后加载。

标签 java html panel show minimize

如果我运行我的应用程序,我必须再次最小化和最大化它才能看到任何内容。我想这是由于在我的标签中使用 HTML 代码引起的...知道如何解决这个问题吗?如果是,我该如何解决?

lblUitleg.setText("<html>QuizIT is een vragenreeks over Informaticabeeher. Er worden in totaal 6 vragen gesteld.<br> Om geslaagd te zijn, moet je 4/6 behalen. Succes!</html>");

我使用 HTML 在标签中创建换行符。

最后,它应该看起来像这样... http://prntscr.com/5r55le

package quiz;

// Imp.
import java.awt.*;
import javax.swing.*;

public class Quiz {

    // Decl. Frame
    public static JFrame frame;

    public static void main(String[] args) {

        // Creat. Frame
        frame = new JFrame();
        frame.setSize(600,500);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setTitle("QuizIT | Knowledge is Power...");
        frame.setVisible(true);
        frame.setLayout(new BorderLayout());
        frame.setContentPane(new Paneel());

    }

    public static class Paneel extends JPanel {

        // Decl. Var.
        public JPanel pnlWelkom, pnlUitleg, pnlVragen, pnlVraag1, pnlVraag2, pnlVraag3, pnlVraag4, pnlVraag5, pnlVraag6, pnlPunten;
        public JLabel lblNaam, lblWelkom, lblUitleg, lblVraag1, lblVraag2, lblVraag3, lblVraag4, lblVraag5, lblVraag6;
        public JButton btnStart, btnVraag1, btnVraag2, btnVraag3, btnVraag4, btnVraag5, btnVraag6;

        public Paneel() {
            setBackground(Color.RED);
            setLayout(new BorderLayout());

            // Init. Var.
            pnlWelkom = new JPanel();
            pnlUitleg = new JPanel();
            pnlVraag1 = new JPanel();
            pnlVraag2 = new JPanel();
            pnlVraag3 = new JPanel();
            pnlVraag4 = new JPanel();
            pnlVraag5 = new JPanel();
            pnlVraag6 = new JPanel();
            pnlPunten = new JPanel();
            pnlVragen = new JPanel();

            lblUitleg = new JLabel();
            lblUitleg.setText("<html>QuizIT is een vragenreeks over Informaticabeeher. Er worden in totaal 6 vragen gesteld.<br> Om geslaagd te zijn, moet je 4/6 behalen. Succes!</html>");

            btnStart = new JButton("Start de Quiz!");

            // BackGround Color
            pnlWelkom.setBackground(Color.BLUE);
            pnlUitleg.setBackground(Color.YELLOW);
            pnlPunten.setBackground(Color.WHITE);

            // Components -> Panels
            pnlUitleg.add(lblUitleg);
            pnlWelkom.add(btnStart);

            // Local. Panels
            add(pnlUitleg, BorderLayout.NORTH);
            add(pnlWelkom, BorderLayout.CENTER);
            add(pnlPunten, BorderLayout.SOUTH);



        }
    }

}

最佳答案

添加frame.pack();像这样的代码:

frame = new JFrame();
        frame.setSize(600,500);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setTitle("QuizIT | Knowledge is Power...");
        frame.setVisible(true);
        frame.setLayout(new BorderLayout());

        frame.setContentPane(new Paneel());
        frame.pack();   // NOTE HERE!  

关于java - JPanel 仅在最小化框架和最大化框架之后加载。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27887684/

相关文章:

java - 二进制搜索和文件读取进入无限循环

java - 如何在 Camel 进程中访问资源中的文件?

javascript - 如何使用流利的工具包将模态放置在页面的右下角?

jQuery 轮播问题

javascript - 如何正确获取 Javascript 中的 HTML 输入值?

java - 如何填写列表列表?

java - Maven 编译 : Failure executing javac

ios - 在 iOS 中创建按钮面板

html - Bootstrap 4 卡片内容未垂直对齐到中间

python - pandas.Panel(data=list_of_dfs) 坏了?