栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

将setVisible()函数放置在函数的开头是否不同?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

将setVisible()函数放置在函数的开头是否不同?

正如评论和其他答案中已经指出的那样:

setVisible(true)
添加完所有组件后,您应该在最后致电。


这不会直接回答您的问题。您的问题的答案是: 是的,这有所作为 。如果您

setVisible
在添加所有组件之前进行调用,则在某些情况下,它
可能 适用于某些程序,某些PC,某些Java版本和某些操作系统,但是您 始终 必须期望它可能无法按预期方式工作某些情况下。

您可以在stackoverflow和其他地方找到许多相关问题。这些问题的通常症状是某些组件无法正确显示,然后在调整窗口大小时突然出现。(调整窗口大小基本上会触发布局和重新绘制)。


当您违反Swing的线程规则时,意外行为的可能性会增加。而且,从某种意义上讲,您确实违反了Swing的线程规则:您应该始终在事件调度线程上创建GUI!

import javax.swing.Jframe;import javax.swing.SwingUtilities;public class SomeSwingGUI{    public static void main(String[] args)    {        SwingUtilities.invokeLater(new Runnable()        { @Override public void run() {     createAndShowGUI(); }        });    }    // This method may (and will) only be called    // on the Event Dispatch Thread    private static void createAndShowGUI()    {        Jframe f = new Jframe();        // Add your components here        f.setVisible(true); // Do this last    }}

顺便提一下:Timothy Truckle在评论中指出,您不应

setVisible
从构造函数中调用它。这是真的。更重要的是:您通常
应该直接创建that的类
extends Jframe
。(在一些(罕见!)的情况下,这是合适的,但总的指导原则应该是 不能 延长
Jframe



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/455405.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号