标题:为什么用show()和pack();setvisible()显示出来的图不一样?
取消只看楼主
嶄ぎ儱
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2007-4-21
 问题点数:0 回复次数:1 
为什么用show()和pack();setvisible()显示出来的图不一样?

import java.util.*;
import java.awt.*;
import javax.swing.*;
public class FourTimer extends JFrame
{
Watch watch=new Watch();
public FourTimer()
{
super("时间显示");
setSize(200,200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel pan=new JPanel();
pan.setLayout(new GridLayout(1,1,15,15));
pan.add(watch);
setContentPane(pan);
}
public static void main(String[] args)
{
JFrame time=new FourTimer();
time.pack();
time.setVisible(true);

}
}
class Watch extends JPanel implements Runnable
{
Thread runner;
Watch()
{
if(runner==null)
{
runner=new Thread(this);
runner.start();
}
}
public void run()
{
while(true)
{
repaint();
try {
Thread.sleep(1000);
}
catch (InterruptedException ex) {

}
}
}
public void paintComponent(Graphics ss)
{
Graphics2D ss2D=(Graphics2D)ss;
Font type=new Font("Serif",Font.BOLD,12);
ss2D.setFont(type);
ss2D.setColor(getBackground());
ss2D.fillRect(0,0,getSize().width,getSize().height);
GregorianCalendar day=new GregorianCalendar();
String time=day.getTime().toString();
ss2D.setColor(Color.red);
ss2D.drawString(time,5,25);
}
}
如果用上面的就会显示出这样的图形:


如果是 用show();就正常.
但在JDK1.6中不能用show();只有用pack();setVisibel();,这样一来就显示不正常了,还是我的代码有问题??
搜索更多相关主题的帖子: pack setvisible show pan import 
2007-05-30 11:48
嶄ぎ儱
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2007-4-21
得分:0 
哦,原来还有这一手啊!!!!!!Thank You!!!!!!!!!!!!!!!

别人不给你机会,自己去创造机会.
2007-05-30 12:45



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-143494-1-1.html




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

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