Java Swing窗口不会出现

时间:2013-10-09 13:46:49

标签: java swing

好的伙计们,这里有谦卑。自从我使用Java Swing以来已经很长时间了,所以我知道这个问题有一些非常明显的解决方案。我想要做的是让所有这些各种摆动元素出现在窗口中。当我运行代码时,没有任何反应。我什么都没看到。每次我谷歌答案我得到关于各种复杂的JPanel问题的东西,我几乎是积极的,这不是一个困难的问题。所以这是我的代码:

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JProgressBar;


public class LimoSysDriver extends JFrame implements ActionListener {

    /**
     * @param args
     */
    JLabel title = new JLabel("Thread Test Application");

    JLabel numOne = new JLabel("1");
    JLabel numTwo = new JLabel("2");
    JLabel numThr = new JLabel("3");
    JLabel numFou = new JLabel("4");

    JProgressBar progOne = new JProgressBar();
    JProgressBar progTwo = new JProgressBar();
    JProgressBar progThr = new JProgressBar();
    JProgressBar progFou = new JProgressBar();

    JLabel counterOne = new JLabel(Integer.toString(progOne.getValue()));
    JLabel counterTwo = new JLabel(Integer.toString(progTwo.getValue()));
    JLabel counterThr = new JLabel(Integer.toString(progThr.getValue()));
    JLabel counterFou = new JLabel(Integer.toString(progFou.getValue()));

    JLabel numGrandTot = new JLabel("Grand Total");
    JLabel counterTot = new JLabel();

    JButton start = new JButton();
    JButton pause = new JButton();
    JButton resume = new JButton();


    public LimoSysDriver(){
        setSize(700,300);
        JPanel pane = new JPanel();
        pane.setLayout(new BoxLayout(pane, BoxLayout.PAGE_AXIS));
        add(pane);
        JPanel lowerPanel = new JPanel();
        lowerPanel.setLayout(new BoxLayout(lowerPanel, BoxLayout.LINE_AXIS));
        add(lowerPanel);

        pane.add(title);
        pane.add(numOne);
        pane.add(progOne);
        pane.add(counterOne);

        pane.add(numTwo);
        pane.add(progTwo);
        pane.add(counterTwo);

        pane.add(numThr);
        pane.add(progThr);
        pane.add(counterThr);

        pane.add(numFou);
        pane.add(progFou);
        pane.add(counterFou);


    }

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        LimoSysDriver window = new LimoSysDriver();

    }

    @Override
    public void actionPerformed(ActionEvent arg0) {
        // TODO Auto-generated method stub

    }

}

问题是,窗口根本没有出现。一旦我能解决这个问题,我就可以对其余部分进行故障排除。提前谢谢大家。

2 个答案:

答案 0 :(得分:2)

您需要将其设置为可见。使用:

setVisible(true)

答案 1 :(得分:2)

一些提示:

  • 需要显示JFrame来电setVisible(true)

  • 您可以使用add(pane)替换用作内容窗格的默认容器,而不是setContentPane(pane)

  • 完成添加组件后,在JFrame可见之前,请不要忘记调用pack()方法。

  • 使用Event Dispatch Thread

  • SwingUtilities.invokeLater()中创建GUI对象
  • 除非您需要添加某些功能,否则请避免从JFrame扩展。如果不是这种情况,请改为使用JFrame变量或类成员。