2010-10-14 81 views
0

我从来没有做过Applet开发。尝试一些非常简单的事情。基本上我正在窗口上绘制一个字符串。但是,每当我重新调整窗口大小时,内容都会消失。Applet内容在调整大小时消失

SO上的一个类似的建议问题推荐覆盖update()方法来调用repaint()。我尝试过,但仍然没有这样做。另外我怎样才能在窗口中居中放置字符串(“Hello World!”)(即使在调整大小时它仍保持居中)?

下面是代码:

import java.awt.Color; 
import java.awt.Graphics; 

import javax.swing.JApplet; 

public class TestApplet extends JApplet 
{ 
public void init(){ 
    setBackground (Color.gray); 
} 
public void paint (Graphics page){ 
    String name = "Hello World!"; 
    page.drawString(name,100,100); 
} 

public void update(Graphics page){ 
    this.repaint(); 
} 
} 

回答

2

这是用于AWT应用程序的旧代码。您绝对不应该重写JApplet的paint()或update()方法。

使用Swing自定义绘画时,通过重写JPanel(或JComponent)的paintComponent()方法来完成。然后,将面板添加到小程序的内容窗格中。

阅读Swing教程中关于Custom Painting的部分以获取示例和更多详细信息。该教程还有一个关于“如何制作小程序”的部分,您应该看看。

此外,我怎么能居中字符串 (的“Hello World!”)的窗口(这样 它保持居中即使在调整大小)

通过使用获取父面板的大小getSize()方法。然后除以2.虽然你需要记住,Y坐标是文本的底部而不是顶部。因此,您还需要考虑Font的FontMetrics以了解文本的确切高度。您可以从Graphics对象中获取FontMetrics。

相关问题