当前位置:  技术问答>java相关

问题:repaint()重绘时原字符不消失

    来源: 互联网  发布时间:2017-04-02

    本文导语:  代码如下: import javax.swing.*; import java.awt.*; import java.awt.event.*; class KeyTest { public static void main(String[] args) { TestFrame frame = new TestFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.show(); } } class TestFra...

代码如下:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;


class KeyTest
{
public static void main(String[] args)
{
TestFrame frame = new TestFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();
}
}

class TestFrame extends JFrame
{
public TestFrame()
{
setTitle("KeyFrame");
setSize(WIDTH, HEIGHT);
TestPanel panel = new TestPanel();
Container content = getContentPane();
content.add(panel);
}

public static final int WIDTH = 250;
public static final int HEIGHT = 300;
}

class TestPanel extends JPanel
{
public TestPanel()
{
account = new BankAccount(1000, this);
account.start(5);
}

public void paintComponent(Graphics g)
{
super.paintComponents(g);


double testbanlance = account.getBanlance();
g.drawString(" is "+testbanlance, 20, 45);

}

// private static String str = "Your Banlance Now is";
private BankAccount account;
}

class BankAccount
{
public BankAccount(double abanlance, JPanel apane)
{
banlance = abanlance;
accountpane = (TestPanel)apane;

}

public void start(final double rate)
{


ActionListener add = new 
ActionListener()
{
public void actionPerformed(ActionEvent event)
{
double interest = banlance * rate;
banlance += interest;


accountpane.repaint();
}
};

Timer t = new Timer(5000, add);
t.start();
}

public double getBanlance()
{
return banlance;
}

private double banlance;
private TestPanel accountpane;
}

用Timer过一段时间重绘,但原来的字符没有消失,而是与新的字符重叠起来了

|
先removeAll(),再drawString()。

|
public void paintComponent(Graphics g)
{
super.paintComponents(g);
double testbanlance = account.getBanlance();
g.drawString(" is "+testbanlance, 20, 45);

}
-->//你要注意paintComponent方法与paint方法不同的地方就是重画时是否清除原来所画的东西
        public void paint(Graphics g)
        {
                super.paint(g);
                double testbanlance = account.getBanlance();
                g.drawString(" is "+testbanlance, 20, 45);

        }
---------------------------

    
 
 

您可能感兴趣的文章:

  • 字符字符串加法问题?
  • 简单问题:如何检测一个字符串中是否存在一个字符?
  • Java中关于字符串字符数目的问题
  • 请教,有关16进制字符串形成2进制字符串的问题!
  • 急问bash shell中替换字符串中某字符为通配符的问题。
  • swing的问题还是jbuiler的问题?? iis7站长之家
  • C语言中的字符串拼接问题,怎么得不到我想要的字符串?
  • 问一个简单的shell问题:如何将一个文件中的字符串A全部用另外一个字符串B替换?
  • 如何处理客户机和服务器使用不同字符集(包括双字节字符)上传或下载文件时文件名的转换问题
  • 关于时间类型向字符串以及字符串向时间类型的转换问题? 很急
  • 在java中,如何将一个字符串如“技术性问题”转化成十六进制,反过来,如果有一个十六进制的字符串如“3F3F3A”,又如何将它还原成字符串
  • 我的问题是:在java中是否有方法能够去掉一行字符串中的某个字符。
  • 字符串处理问题的
  • Ubuntu11.04版本进入字符界面问题
  • 字符串的存取问题!急
  • 截取字符串问题
  • 数组字符串和指针字符串已经变量的生命期 问题
  • VMware Workstation Linux虚拟机汉字字符显示的问题
  • 在线等:关于特殊字符的输出小问题!
  • 关于取字符串的问题
  • Linux启动后logo一直显示不会消失问题
  • Gnome之Panel消失问题,纳闷
  • Android修改源码解决Alertdialog触摸对话框边缘消失的问题
  • LINUX连网,声音以及一些消失的命令的问题
  • 巨菜问题:重装xp后grub启动菜单消失,怎么办?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请问repaint()延迟问题?
  • 关于repaint()的一个问题???
  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • 简单问题简单问题简单问题简单问题
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • 小问题,急问题,重大问题!!!
  • sharepoint 2010中item.Update()和item.SystemUpdate 修改数据版本问题解决
  • 弱弱的一问,linux下的中文问题及网络问题,分不是问题
  • 八个问题帮你快速了解Docker
  • 请教两个小问题:一个cgywin下使用vi的问题,另一个socket的问题
  • 错误:将'const x'作为'x'的'this'实参时丢弃了类型限定问题解决
  • 网页的编码问题!或者java的编码问题,由此引出一条解决中文问题的思路
  • nginx Windows版相关问题及使用说明
  • 死锁的问题 多级锁定问题 循环锁定问题
  • vs2010下禁用vmware的方法以及解决vmware插件导致vs2010变慢的问题
  • [问题]双系统出现的问题!求问题的原因和解决办法!
  • Linux下时钟同步问题:Clock skew detected原因分析及解决方法
  • 初学者问题。一个是编译hello world的问题,一个是配置ssh的问题
  • c/c++服务器程序内存泄露问题分析及解决
  • C程序问题:哪个高手帮我解释下下面的问题,主要是a[0]和&[0] 的区别 和编译器的问题??
  • ​部署 Docker 前必须问自己的四个问题
  • swing的问题还是jbuiler的问题??
  • spring的事务类型及spring和hibernate可能导致的问题分析
  • 菜鸟第一次安装红帽子7.2的一箩筐问题。每个问题会开个帖子,各放100分!请有安装经验的老鸟们帮忙解决。第二个问题:什么是LILO?怎么样


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3