2010-10-14 79 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。

相關問題