Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.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_Image_Applet_Rendering - Fatal编程技术网

Java 仅在小程序上绘制一次字符串

Java 仅在小程序上绘制一次字符串,java,image,applet,rendering,Java,Image,Applet,Rendering,Java中的新问题,可能会重复这个问题 使用不带标题栏的全屏小程序,借助绘画方法以10毫秒的时间间隔渲染图像。同时,我希望在小程序屏幕的任何位置显示特定的文本 由于图像是动态的,所以我以10毫秒的速度渲染,但文本是固定的,在applet的整个生命周期中不会改变 现在的问题是,若我用画法画文本,那个么画法的负担就是每10毫秒画一次图像和文本 public void paint(Graphics g) { if(img != null) { g.drawIm

Java中的新问题,可能会重复这个问题

使用不带标题栏的全屏小程序,借助绘画方法以10毫秒的时间间隔渲染图像。同时,我希望在小程序屏幕的任何位置显示特定的文本

由于图像是动态的,所以我以10毫秒的速度渲染,但文本是固定的,在applet的整个生命周期中不会改变

现在的问题是,若我用画法画文本,那个么画法的负担就是每10毫秒画一次图像和文本

public void paint(Graphics  g) 
{   
    if(img != null)
    {
        g.drawImage(img, 0, 0, null);   
        g.drawString("Hey there!", 0, 0); //Additional load
    }           
}   
也不能在标题栏上放置文本


是否可以一次绘制文本并频繁渲染图像?

如果只想绘制一次文本,我建议在绘制方法之外使用布尔变量:

boolean drawn = true;
public void paint(Graphics g){
    if(drawn) g.drawString(...);
}
问题是,如果你有任何移动的像素或对象,(改变每一帧的位置)或者任何应该消失的东西,你必须写更多的东西来擦除它。将绘制命令层叠在一起更容易阅读,并且可以更容易地编辑和创建

public void paint(Graphics  g) 
{ 
应改为:

public void paint(Graphics  g) 
{ 
     super.paint(g); // paint the background, borders etc.
因此,考虑到这样做会删除先前绘制的文本,您的问题的答案是-否


顺便说一句-查找“过早优化”

但是你不需要把课文画出来吗?你可能需要写更多的东西,然后它会覆盖文本。要解决此问题,请再次绘制。