JPanel仅在最小化后加载,然后在最大化帧时加载。

时间:2015-01-11 13:34:34

标签: 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);



        }
    }

}

1 个答案:

答案 0 :(得分:2)

添加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!