| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 589 人关注过本帖
标题:求教repaint()问题
只看楼主 加入收藏
zhanglinkai
Rank: 1
等 级:新手上路
帖 子:87
专家分:0
注 册:2006-11-25
收藏
 问题点数:0 回复次数:6 
求教repaint()问题
import javax.swing.*;
import java.awt.*;
class window extends JWindow{
int length=0;
public window(){
setBounds(200,200,600,400);
setVisible(true);


}
public void paint(Graphics g){
g.setFont(new Font(null,Font.BOLD,20));

g.drawRect(100,100,350,50);
setForeground(Color.black);
try{
Thread.sleep(200);
if(length<=350){
g.setColor(Color.red);
float m=((float)length/350)*100;
String ch="%";
ch=String.valueOf(m).concat(ch);

g.drawString(ch,95,95);
g.fillRect(100,100,length,50);

length+=2;
//super.paint(g);
repaint();

}
}catch(Exception e){}
}
}
public class windows{
public static void main(String[] args){
new window();
}
}
请高手指教如何使提示信息百分数每次重画前把以前的清掉.谢谢!!
搜索更多相关主题的帖子: repaint 
2006-12-17 16:59
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 

调用一下super.paint(g);
放在paint方法里面的第一句


可惜不是你,陪我到最后
2006-12-17 17:02
zhanglinkai
Rank: 1
等 级:新手上路
帖 子:87
专家分:0
注 册:2006-11-25
收藏
得分:0 
可是加了那句 就一直在闪根本看不清字啊,请斑竹再指教一下,万分感激!谢谢!

希望自己能走的更远!!!
2006-12-17 18:02
zhanglinkai
Rank: 1
等 级:新手上路
帖 子:87
专家分:0
注 册:2006-11-25
收藏
得分:0 
import javax.swing.*;
import java.awt.*;
class window extends JWindow{
int length=0;
JLabel n;
JPanel panel=new JPanel();
public window(){
setBounds(200,200,600,400);
n=new JLabel();
panel.add(n);
panel.setBackground(Color.white);
getContentPane().add(panel);
setVisible(true);


}
public void paint(Graphics g){
//super.paint(g);
g.setFont(new Font(null,Font.BOLD,20));

g.drawRect(100,100,350,50);
setForeground(Color.black);
try{
Thread.sleep(200);
if(length<=350){
g.setColor(Color.red);
float m=((float)length/350)*100;
String ch="%";
ch=String.valueOf(m).concat(ch);
n.setText(ch);
//g.drawString(ch,95,95);
g.fillRect(100,100,length,50);

length+=2;

repaint();

}
}catch(Exception e){}
}
}
public class windows{
public static void main(String[] args){
new window();
}
}
我这样实现了一下,就是还有个问题请教,如何让计算出来的百分数只保留两位啊,谢谢指教

希望自己能走的更远!!!
2006-12-17 18:09
Eastsun
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:32
帖 子:802
专家分:0
注 册:2006-12-14
收藏
得分:0 


repaint();居然在paint里

代码改成这样就OK了:


import javax.swing.*;
import java.awt.*;
class window extends JWindow{
int length=0;
public window(){
setBounds(200,200,600,400);
setVisible(true);

}
public void paint(Graphics g){
super.paint(g);
g.setFont(new Font(null,Font.BOLD,20));

g.drawRect(100,100,350,50);
setForeground(Color.black);
try{

if(length<=350){
g.setColor(Color.red);
float m=((float)length/350)*100;
String ch=\"%\";
ch=String.valueOf(m).concat(ch);

g.drawString(ch,95,95);
g.fillRect(100,100,length,50);

length+=2;
//super.paint(g);
Thread.sleep(200);
repaint();

}
}catch(Exception e){}
}
}
public class windows{
public static void main(String[] args){
new window();
}
}


My BlogClick Me
2006-12-17 18:11
Eastsun
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:32
帖 子:802
专家分:0
注 册:2006-12-14
收藏
得分:0 

我这样实现了一下,就是还有个问题请教,如何让计算出来的百分数只保留两位啊,谢谢指教

import java.text.*;
然后在repaint里面把String ch="%";
ch=String.valueOf(m).concat(ch);
改成


DecimalFormat fm =new DecimalFormat(\"##.##\");
String ch =fm.format(m)+\"%\";

就OK


My BlogClick Me
2006-12-17 18:27
zhanglinkai
Rank: 1
等 级:新手上路
帖 子:87
专家分:0
注 册:2006-11-25
收藏
得分:0 
谢谢两位的指教,在两位的帮助下问题以解决

希望自己能走的更远!!!
2006-12-17 18:34
快速回复:求教repaint()问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019638 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved