当前位置: 首页 > 面试题库 >

Java扩展JFrame与在程序内部创建它

燕俊明
2023-03-14
问题内容

使用Swing制作应用程序时,我已经看到人们做两件事之一来创建JFrame。哪种方法更好,为什么呢?

我是Java和编程的初学者。我唯一的学习资源是书籍,YouTube和Stack Overflow。

import {imports};

public class GuiApp1 {

    public static void main(String[] args) {

        new GuiApp1();
    }

    public GuiApp1()  {
        JFrame guiFrame = new JFrame();

        guiFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        guiFrame.setTitle("Example GUI");
        guiFrame.setSize(300,250);
        ................
    }

import {imports};

public class GuiApp1 extends JFrame {

    public Execute() {
        getContentPane().setBackground(Color.WHITE);
        getContentPane().setLayout(null);
        setSize(800, 600);
        .............
    }

    public static void main(String[] args) {
        Execute frame1 = new Execute();
        frame1.setVisible(true);

    }
}

问题答案:
  • 避免扩展JFrame,因为它将JGUI与你的GUI联系在一起。相反,如果你专注于创建JPanels,那么你可以自由地在需要的任何地方使用这些JPanels-在JFrame,JDialog,JApplet或另一个JPanel内部,或通过CardLayout与其他JPanels交换。
  • 通常避免继承,尤其是复杂类的继承。这将防止有害的错误,例如无意中的方法重写(尝试创建具有getX() and getY()方法的JFrame或JPanel,以了解我的意思!)。
  • 如果使用的是IDE,请避免继承复杂的类:如果重写复杂的类,则在对这些类的对象调用方法时,将为你提供太多,太多的方法选择。
  • 封装是好的,并且可以创建更安全的代码。仅暴露那些需要暴露的东西,并尽可能控制该暴露。


 类似资料:
  • 问题内容: 我的目标是为正在创建的程序创建一个新的文件扩展名(可能不止一个)。因此,在四处浏览后,我发现了以下有关该主题的大量资源,以防万一有人想看一下它们并获得我一直在看的内容的大致思路。 http://support.microsoft.com/?scid=kb%3Ben- us%3B185453&x=6&y=11 http://www.rgagnon.com/javadetails/java

  • 问题内容: 我必须安装到docker postgres上 这是我在Shell中执行我的普通命令的需求 如果我删除容器中的那行,它可以工作,但是我必须自己执行安装,并且我必须告诉项目中的每个人都这样做,这不是一个好习惯 这是我的 这是我的码头工人文件 构建后,我无法运行它 题: 如何从dockerfile 安装? 我想制作图像并将其重新用于团队的整个项目 问题答案: 之所以失败是因为Postgres

  • 内建的类,例如 Array,Map 等也都是可以扩展的(extendable)。 例如,这里有一个继承自原生 Array 的类 PowerArray: // 给 PowerArray 新增了一个方法(可以增加更多) class PowerArray extends Array { isEmpty() { return this.length === 0; } } let arr

  • Flarum 是简约的,同时也是高度可扩展的。实际上,Flarum 附带的大部分功能都是扩展程序。 这种方法使得 Flarum 具有极高的可定制性。您可以禁用任何您不需要的功能,并安装其他扩展,打造更适合您的社区。 如果您想了解更多关于 Flarum 的理念,我们在核心中包含了哪些功能,或者您想制作自己的扩展,请查看我们的 扩展文档。 本文将重点讨论从论坛管理员的角度管理扩展。 Flarum 有一

  • 每个项目都是一个扩展包 一旦你的目录有一个 composer.json 文件,这个目录就是一个包。当你给一个项目添加一个 require 依赖时, 此时你正在创建一个依赖于其他包的包。 项目和扩展包唯一不同之处在于,项目是一个没有名称的包。 为了使该包可安装,你需要指定一个名称, 通过在 composer.json 中添加 name 属性: { "name": "acme/hello-wo

  • Atom和VisualStudio代码可能是迄今为止最大的电子应用程序,它们都具有很强的可扩展性,还有其他一些较小的例子,如N1。我的意思是,它们支持插件。 问题是:我想我会在谷歌上找到一些关于如何让电子应用程序可扩展的东西,或者那些很酷的“棒极了”列表上的东西,但是我什么也没找到。此外,深入研究这些应用程序的源代码需要一段时间。 我在寻找什么(或): 我不知道的内置功能 类似于电子可扩展的库(假