Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 小程序内容在调整大小时消失_Java_Applet - Fatal编程技术网

Java 小程序内容在调整大小时消失

Java 小程序内容在调整大小时消失,java,applet,Java,Applet,我从未做过Applet开发。尝试一些非常简单的事情。基本上我是在窗户上画一根线。但是,每当我重新调整窗口大小时,内容就会消失 类似的建议问题是,建议重写update()方法以调用repaint()。我试过了,但还是不行。另外,如何在窗口上居中放置字符串(“Hello World!”)(使其即使在调整大小时也保持居中) 代码如下: import java.awt.Color; import java.awt.Graphics; import javax.swing.JApplet; publi

我从未做过Applet开发。尝试一些非常简单的事情。基本上我是在窗户上画一根线。但是,每当我重新调整窗口大小时,内容就会消失

类似的建议问题是,建议重写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();
 }
}

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

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

有关示例和更多详细信息,请阅读上的Swing教程部分。本教程还有一个关于“如何制作小程序”的部分,您应该看一下

还有,我怎样才能使线居中 “你好,世界!”)在窗户上(所以 它即使在调整大小时也保持居中)

使用getSize()方法获取父面板的大小。然后除以2。尽管您需要记住,Y坐标是文本的底部,而不是顶部。因此,您还需要考虑字体的FontMetrics来知道文本的确切高度。可以从图形对象获取FontMetrics