论坛首页 Java版

swing在windows和linux下运行诞生不同的结果

浏览 492 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
最后更新时间:2007-12-07 关键字: swing
Java的bug吗??现在有个问题很让我头疼
我先把代码贴出来把


package test;

import java.awt.Dimension;

import javax.swing.JFrame;

public class TestFrame
{
    public static void main(String[] args)
    {
        JFrame frame = new JFrame("Get MaxSize");
      // frame.setSize(300,300);
        frame.setVisible(true);
        frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Dimension ds = frame.getSize();
        System.out.println("-------->>>ds="+ds);
    }
}


大家认为打印什么呢?
肯定是frame最大化时的大小啊?.确实,在windows下运行打的就是这个结果
可是到了linux下运行,居然是
-------->>>ds=java.awt.Dimension[width=0,height=0]

把你人气个半死,如果启用frame.setSize(300,300);
那么结果是
-------->>>ds=java.awt.Dimension[width=300,height=300]
实在是让人郁闷啊.
这似乎可以证明linux下运行frame.setExtendedState(JFrame.MAXIMIZED_BOTH);这个代码的时候,
是没有调setSize方法的哦

但是这就导致在不同的平台有不同的结果了

大家也许问我为何要知道这个尺寸,这只是一段事例代码,实际的业务与这有关哦
   
最后更新时间:2007-12-07
业务代码要和界面这么耦合
设计上还要重新考虑下吧
   
0 请登录后投票
最后更新时间:2007-12-10
这个业务不是指后台的business logic,而是指我们整个程序需要完成的目标,是我表述不清除了,或者说这个业务纯粹是前台业务。
   
0 请登录后投票
论坛首页 Java版

跳转论坛:
JavaEye推荐