2014-02-12 164 views
0

我试图运行一个非常简单的Java小程序程序。 当我使用AWT.Label组件时,我可以通过appletviewer查看组件。我使用的代码是:显示Java Awt组件,但Swing组件不显示在Applet中

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); 
    } 

} 

问题是什么?

+0

感谢尼克瑞普:)为更正。 – LearnerFreak

回答

1

因为paintJApplet中的一种方法,所以当您覆盖它时,您需要调用super.paint(g),以便父组件仍可以进行绘制。您的paint方法应该看起来更像这样:

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

thnak你尼克瑞普:)工作。但是我遇到了另一个问题。如果我一个接一个地添加太多JLabel,只显示最后一个。 – LearnerFreak

+0

您可能需要一个容器来容纳所有标签 - 然后将容器添加到您的小程序。我会建议使用“盒子”。您可以使用'Box.createVerticalBox();' –

+0

轻松创建一个。另外,不要忘记增加投票=谢谢。 :)接受的答案=耶!有用! –