Applet 中显示 Java Awt 组件但不显示 Swing 组件

标签 java swing applet awt

我正在尝试运行一个非常简单的Java applet 程序。 当我使用AWT.Label组件时,我可以通过appletviewer看到该组件。我使用的代码是:

import java.applet.Applet;
import java.awt.Graphics;
import javax.swing.*;
import java.awt.*;

public class AppletTest extends Applet
{

  Label user = new Label("Username", Label.LEFT);

    public void paint(Graphics g) 
    {
     g.drawString("Registration Form", 195, 10);
    }

     public void init()
     {
       add(user);
     }

 }

当我使用 swing.JLabel 组件时,除了顶部打印的注册表之外,我在屏幕上看不到任何组件:

import java.applet.Applet;
import java.awt.Graphics;
import javax.swing.*;
import java.awt.*;


public class AppletTest extends JApplet
{

  JLabel user = new JLabel("Username", JLabel.LEFT);

    public void paint(Graphics g) 
    {
     g.drawString("Registration Form", 195, 10);
    }

     public void init()
     {
       add(user);
     }

 }

问题是什么?

最佳答案

因为paintJApplet中的一个方法,当你重写它的时候,需要调用super.paint(g),这样父组件仍然可以进行绘画。您的 paint 方法应该看起来更像这样:

@Override
public void paint(Graphics g) {
    super.paint(g);
    g.drawString("Registration Form", 195, 10);
}

关于Applet 中显示 Java Awt 组件但不显示 Swing 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21731213/

相关文章:

java - 我如何知道另一个类何时更新?

java - AsyncTask 和 JSOUP 配合得很好

java - 使用java渲染play 2框架中的对象列表

java - 将 ActionListener 添加到嵌套在另一个包中的 JPanel 上的 JButton

java - 如何在图像上画一个圆圈?

java - Azure Web 应用程序未将 https 方案传递给 Java Web 应用程序

java - 如何在JLabel中放置大标题?

java - 克隆后编辑 JTable 单元格

java - 解决java.security.AccessControlException的快速方法

java - 小程序出现奇怪的 ClassNotFound 错误