标题:为什么用show()和pack();setvisible()显示出来的图不一样?
只看楼主
嶄ぎ儱
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2007-4-21
 问题点数:0 回复次数:4 
为什么用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: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
得分:0 

你既然设了大小,就不要去pack了

pack一下就会把你的窗口压缩到能最小能显示为止

如果你的JPanel设置一下PreferredSize,就pack不了了


可惜不是你,陪我到最后
2007-05-30 12:37
嶄ぎ儱
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2007-4-21
得分:0 
哦,原来还有这一手啊!!!!!!Thank You!!!!!!!!!!!!!!!

别人不给你机会,自己去创造机会.
2007-05-30 12:45
lov
Rank: 1
等 级:新手上路
帖 子:103
专家分:0
注 册:2006-12-23
得分:0 
show()
和visible()是一样的 !
2007-05-30 18:28
天涯海角
Rank: 2
等 级:新手上路
威 望:3
帖 子:507
专家分:0
注 册:2005-10-21
得分:0 
前两个是awt组件,后一个是swing组件,推荐用swing 组建

我的未来不是梦!
2007-05-30 22:06



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




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

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