在JPanel中实例化JApplet的实例?

时间:2014-03-25 08:36:42

标签: java swing jpanel japplet

是的,所以我的队友创建了一个包含倒计时的JApplet

我必须使用他的JApplet并将其放入JPanel/JTab(其位于JFrame内),这是来自NetBeans Palette的内容。

简单地说,我有一个包含许多组件的页面,我只想在右上角倒计时。

在netbeans中使用GUI构建器,我创建了一个JPanel和一个事件。在事件处理程序中,我把:

private void jPanel1ComponentShown(java.awt.event.ComponentEvent evt) {                                       
    // TODO: Countdown

    Package.Packagename.Countdown.init();
}                                      

我得到的错误信息是:

非静态方法init()无法从静态上下文中引用。

Applet可以自行运行,我只是不能把它放在这里。

2 个答案:

答案 0 :(得分:3)

  

"我必须拿起他的JApplet并将其放入JPanel"

JApplet是顶级容器,不应放在JPanel内。但是,您可以获取JApplets组件内容并将其放在JPanel

-OR -

不要试图使用朋友的applet代码,只需创建自己的代码即可。实施倒计时实际上并不困难。只需手动编码即可。

  1. 将标签拖放到相框的一角(jLabel

  2. 然后使用类似的东西

    public class MyFrame extends javax.swing.JFrame {
        int time = 100;
    
        public MyFrame () {
            initComponents();
    
            jLabel.setText(String.valueOf(count));
    
            javax.swing.Timer timer = new javax.swingTimer(1000, new java.awt.event.ActionListener(){
                public void actionPerformed(java.awt.event.ActionEvent e) {
                    if (count == 0) {
                        ((javax.swing.Timer)e.getSource()).stop();
                    } else {
                        count--;
                        jLabel.setText(String.valueOf(count));
                    }
                }
            });
            timer.start();
        }
    }
    

  3. 如果您愿意,只需创建一个Timer类成员,您可以从另一个actionPerformed拨打start()stop()

答案 1 :(得分:1)

Applet是一个在桌面应用程序中无关的Web组件。

创建一个小部件(包含在JPanel或其他内容中的内容),您将在applet和桌面应用中使用这些小部件。