使用netbeans创建JApplet(基于swing的applet)?

时间:2011-06-07 21:24:48

标签: netbeans applet

我开始学习Java了很久。并学习Netbeans 7.0。

我只是想确保我这样做。

我基本上需要制作一个applet,但不是基于AWT,而是基于Swing。

所以我需要扩展JApplet,而不是Applet。我理解在摇摆中绘制Jpanel而不是awt canvas(或Panel)。所以我在一个网站上读到,需要覆盖PaintComponent()而不是像使用awt applet那样覆盖paint()?

我需要制作一个非常简单的小程序,比如一个按钮,当我点击它时,我想画一个图形,说一条线或一个圆圈,并让输出转到按钮下方的区域。

这就是我做的事情

  1. 文件 - >新项目
  2. 选择Java并从Projects中选择“Java Application”
  3. 确保取消选中“创建主类”,然后单击“完成”
  4. 文件 - >新文件
  5. 从catagories面板
  6. 下选择“Swing GUI Forms”
  7. 从“文件类型”中选择“Japplet表单”,“下一步”和“完成”
  8. 从调色板中,从Swing Controls中选择Button并将其放在from
  9. 现在是棘手的部分。我需要一个区域来画画,对吗?所以我从调色板中选择Swing容器中的“Panel”,然后将其放在表单上,​​根据需要调整大小。好了,现在我有了这个:
  10. enter image description here

    到目前为止,我是否在正确的轨道上?现在我打开源文件,然后看到init()方法。

    现在是我需要帮助的地方。不知道我需要插入的代码只是为刚刚添加的JPanel画一条线。我知道我需要在这里插入它:

    enter image description here

    我尝试了“插入代码”功能,并选择覆盖,但是没有看到PaintComponent()?

    我知道如何在swt applet中执行此操作,只需添加一个paint(Graphics g)方法。但是当我这样做时,图形不会在Jpanel区域内绘制。基本上,我如何告诉它在特定的JPanel区域绘制内容?

    如果有人告诉我我需要插入哪些代码来绘制一条线或任何要在该JPanel上显示的graphics2D对象,我会在底部添加,这样会很棒。

    感谢, --Nasser

    编辑1:

    只是澄清一下:如果我在Jpanel上添加这个函数来绘画:

    public void paint(Graphics g)
     {
      super.paint(克);
      g.drawString(....);  }

    然后输出显示确定,但它在主日本。并且可以隐藏按钮和任何其他UI组件。

    我需要将绘画输出转到我之前在按钮下面添加的特定Jpanel。到这个

    private javax.swing.JPanel jPanel1;
    

    所以,我的问题是,如何绘制/绘制到上面的对象而不是主Jpanel?

    编辑2:

    我试图改变JPanel背景颜色,但它无法正常工作。这是代码。 我也试过JpanelForm而不是JApplet Form。可以使用JFrame表单制作applet吗?因为这需要一个main(),所以似乎不可能。

    import javax.swing.*;
    import java.awt.*;
    import java.awt.Graphics;    
    public class NewJApplet extends javax.swing.JApplet
    {     
        /** Initializes the applet NewJApplet */
        public void init()
        {                
            jPanel1 = new JPanel();        
            try
            {
                java.awt.EventQueue.invokeAndWait(new Runnable()
                {
                    public void run()
                    {
                        initComponents();
                    }
                });
            } catch (Exception ex)
            {
                ex.printStackTrace();
            }
        }        
        private void initComponents() {...}
        //---------  ADDED THIS
        private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)
        {
            // TODO add your handling code here:        
            Rectangle rect=new Rectangle(4,4);
            jPanel1.setBackground(Color.RED);                     
        }
        //---------------
    
        // Variables declaration - do not modify
        private javax.swing.JButton jButton1;
        private javax.swing.JPanel jPanel1;
        // End of variables declaration
        }
    

3 个答案:

答案 0 :(得分:4)

NetBeans“确实”支持JApplet。创建一个新项目后,在项目编辑区域左侧的“项目”窗格中单击项目的包,然后选择新建 - > JApplet的

答案 1 :(得分:1)

netbeans不支持制作JApplets,只支持applet。使用标准文本编辑器设计JApplet接口,然后使用javac编译源代码。

答案 2 :(得分:1)

我刚才经历过同样的事情,你只需要从文件中取出包名并进行编译即可。您将在netbeans中收到一条消息,即applet未初始化,这是正常的,只需转到存储.class文件的源文件夹,您将找到多个NewJApplet.class文件,您将看到一些带有$符号的文件。

将所有.class文件与html文件一起复制,就是这样。查看使用浏览器上的表单创建的JApplet。使用java创建任何东西都非常有趣。