【问题标题】:Initializing a JFrame初始化一个 JFrame
【发布时间】:2011-03-26 13:52:24
【问题描述】:

这可能是一个简单的问题,但是嘿,我是初学者。

所以我创建了一个计算一些东西的程序,它目前正在控制台中运行。我决定为其添加一个用户界面,因此我使用 NetBeans IDE 中的内置功能创建了一个 JForm(可能只是暂时的,直到我学会手动处理 Swing,我有一个截止日期,所以我想快速完成它),然后绘制出一些控件和容器。现在表格已经准备好了,我该如何初始化它?据我所知,我需要以某种方式从 Main.java 调用该类,对吗?我试过做: GUI gui = new GUI(); (该类称为 GUI),但这并没有做任何事情。如果我把它留空,它会做同样的事情。还是假设它自己初始化?

谢谢。

【问题讨论】:

    标签: java swing initialization jframe


    【解决方案1】:
    GUI gui = new GUI(); 
    gui.setVisible(true);
    

    【讨论】:

    • 这很尴尬,只是错过了那条线。谢谢!
    • 每个人(即使是专业人士,我不是)都会犯错,所以不要出汗。
    【解决方案2】:

    恕我直言,推荐的方法是(使用事件调度线程和简单的匿名类):

    // effectively the same as SwingUtilities.invokeLater
    EventQueue.invokeLater(new Runnable()
    {
        public void run()
        {
            JFrame frame = new GUI(); // GUI gui = new GUI() as well
            // default value JFrame.HIDE_ON_CLOSE
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
            frame.setVisible(true);
        }
    });
    

    来自 Java API http://download.oracle.com/javase/6/docs/api/javax/swing/package-summary.html#threading

    "一般来说 Swing 不是线程安全的。 所有 Swing 组件和相关 类,除非另有说明, 必须在事件中访问 调度线程。”

    您可以使用具有相同结果的 SwingUtilities.invokeLater 或 EventQueue.invokeLater,即 SwingUtilities.invokeLater 方法只调用 EventQueue.invokeLater 方法。

    更多信息请访问Java tutorial(尤其是为什么要使用 JFrame.EXIT_ON_CLOSE)。

    【讨论】:

      【解决方案3】:

      这是一个创建 JFrame 的最简单示例:

      JFrame myFrame = new JFrame("");
      frame.setTitle("Welecome to JFames!");
      frame.setSize(600, 400);
      frame.setVisible(true);
      

      frame.setTitle("text"); 命令将更改框架标题。

      setVisible(boolean) 命令将使它可见,因为它被隐藏了

      setSize(int, int) 命令将改变框架的大小。

      有关更多 JFrame 示例,请查看例如:https://javatutorial.net/swing-jframe-basics-create-jframe

      【讨论】:

        【解决方案4】:

        用 setTitle("Your Title"); 初始化类作用域

        【讨论】:

          【解决方案5】:

          上面的答案“用 setTitle("Your Title"); 初始化类范围”说明如何为 jframe 设置窗口标题。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2011-01-15
            • 2014-12-11
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多