我正在尝试运行一个非常简单的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);
}
}
问题是什么?
最佳答案
因为paint
是JApplet
中的一个方法,当你重写它的时候,需要调用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/