是否可以同时显示2帧?

时间:2019-03-28 08:24:39

标签: java eclipse jframe jpanel

所以我正在做一个小测验。它完成了,但我仍在添加一些东西。每当出现问题时,我都想在上面添加一个具有倒计时的计时器。我已经分别创建了该倒计时,现在尝试将其添加到其他框架中。

我的问题是,是否可以在另一个框架(问题和答案)上添加一个框架(计时器)?

我用JFrames做所有事情!

以下是倒计时的代码:

 public class timer extends JFrame {

    public timer() {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLayout(new BorderLayout());
        frame.add(new TestPane());
        frame.pack();
        frame.setVisible(true);
    }
}

class TestPane extends JPanel {
    JLabel label;
    Timer timer;
    int count;
    public TestPane() {
        label = new JLabel("...");
        setLayout(new GridBagLayout());
        add(label);
        timer = new Timer(500, new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                count++;
                if (count < 100000) {

                    try{
                        Thread.sleep(500);
                    }
                    catch(InterruptedException error){
                    }

                    label.setText(Integer.toString(count));

                } else {
                    ((Timer) (e.getSource())).stop();
                }
            }
        });
        timer.setInitialDelay(0);
        timer.start();
    }
    @Override
    public Dimension getPreferredSize() {
        return new Dimension(200, 200);
    }
}

1 个答案:

答案 0 :(得分:0)

也许是因为Timer类的名称错误吗?

public class Timer extends JFrame {

    public Timer() {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLayout(new BorderLayout());
        frame.add(new TestPane());
        frame.pack();
        frame.setVisible(true);
    }
}

您在Timer代码中创建了TestPane的新实例,但是您的类名是timer,看到了吗?