【问题标题】:Creating a JApplet (swing based applet) with netbeans?用netbeans 创建一个JApplet(基于swing 的小程序)?
【发布时间】:2011-09-10 10:32:46
【问题描述】:

很长一段时间后,我开始学习 Java。并学习 Netbeans 7.0。

我只是想确保我这样做没问题。

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

所以我需要扩展 JApplet,而不是 Applet。我理解在 Jpanel 而不是 awt 画布(或面板)上的摇摆绘制。所以我在一个网站上读到需要重写 PaintComponent() 而不是像 awt 小程序那样重写paint()?

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

这就是我所做的

  1. 文件->新建项目
  2. 选择 Java 并从项目中选择“Java 应用程序”
  3. 确保取消选中“创建主类”,然后单击完成
  4. 文件->新建文件
  5. 从类别面板下选择“Swing GUI 表单”
  6. 从“文件类型”中,选择 Japplet 表单,下一步并完成
  7. 从调色板中,从 Swing Controls 中选择 Button 并将其放在 from 上
  8. 现在是棘手的部分。我需要一个可以绘制的区域,对吧?所以我从调色板中,从 Swing 容器中选择一个“面板”,并将其放置在表单上,​​根据需要调整它的大小。做,现在我有了这个:

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

现在是我需要一点帮助的地方。不确定我需要插入什么代码才能在我刚刚添加的 JPanel 上画一条线。我知道我需要在此处插入:

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

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

如果有人告诉我我需要在那里插入什么代码来绘制一条线或任何 graphics2D 对象以显示在我添加到底部下方的那个 JPanel 上,那就太好了。

谢谢, --纳赛尔

编辑 1:

澄清一下:如果我在 Jpanel 上添加此功能:

公共 void 油漆(图形 g)
{
super.paint(g);
g.drawString(....); }

然后输出确实显示正常,但它在主 Japnel 上。并且可以隐藏按钮和其他任何 UI 组件。

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

private javax.swing.JPanel jPanel1;

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

编辑 2:

我只是尝试更改 JPanel 背景颜色,但它不起作用。这是代码。 我还尝试了 JpanelForm 而不是 JApplet Form。可以使用 JFrame 形式制作小程序吗?由于这需要 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
    }

【问题讨论】:

    标签: netbeans applet


    【解决方案1】:

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

    【讨论】:

    • 是的,但它不正确支持运行它们。我找不到任何方法来运行带有一些参数的小程序。您可以右键单击一个小程序并运行它,但是如果您随后尝试运行该项目(您可以在其中设置参数),您会被告知它没有主类。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      我刚才也经历了同样的事情,你只需要从文件中取出包名并编译它。您将在 netbeans 中收到一条消息,提示该小程序未初始化,这没关系,只需转到存储 .class 文件的源文件夹即可找到多个 NewJApplet.class 文件,您还会看到其中一些带有 $ 符号的文件。

      复制所有 .class 文件并将其与 html 文件放在一起,就是这样。查看使用浏览器上的表单创建的 JApplet。让使用 java 创建任何东西变得如此有趣。

      【讨论】:

        猜你喜欢
        • 2011-02-12
        • 2012-05-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-12
        • 1970-01-01
        • 2014-08-20
        • 1970-01-01
        相关资源
        最近更新 更多