【问题标题】:JPanel only loads after Minimizing and then Maximizing frame.JPanel 仅在最小化然后最大化帧之后加载。
【发布时间】:2015-01-11 13:34:33
【问题描述】:

如果我运行我的应用程序,我必须再次最小化和最大化它才能看到任何内容。我想这是在我的标签中使用 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);



        }
    }

}

【问题讨论】:

    标签: java html panel show minimize


    【解决方案1】:

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

    【讨论】:

    • @BenjiNaesen:如果答案回答了问题,习惯上将其标记为“答案”,您已经这样做了。如果答案有帮助,也习惯性地对其进行投票。
    • 对不起,没有检查声誉要求。我的错。
    • Np。我 15 岁时现在就这样做了。@arcy
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多