首页 文章

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

提问于
浏览
1

我很久以后就开始学习Java了 . 并学习Netbeans 7.0 .

我只是想确保我这样做 .

我基本上需要制作一个小程序,但不是基于AWT,而是基于Swing .

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

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

这就是我做的

  • 文件 - >新项目

  • 选择Java并从项目中选择"Java Application"

  • 确保取消选中"create Main class",然后单击“完成”

  • 文件 - >新文件

  • 从catagories面板下选择"Swing GUI Forms"

  • 从"File types",选择Japplet表单,下一步和完成

  • 从调色板中,从Swing Controls中选择Button并将其放在from上

  • 现在是棘手的部分 . 我需要一个区域来画画,对吗?所以我从调色板中选择,从Swing容器中选择"Panel",并将其放在表单上,根据需要调整大小 . 做,现在我有这个:

enter image description here

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

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

enter image description here

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

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

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

谢谢, - 纳瑟

编辑1:

只是澄清一下:如果我在Jpanel上添加此函数来绘制:

public void paint(图形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 回答

  • 1

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

  • 1

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

  • 4

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

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

相关问题