扩展 JFrame 与在程序内创建它

2023-11-20

在使用 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);
        ................
    }

AND

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,因为它将您的 GUI 与 JFrame 联系在一起。相反,如果您专注于创建 JPanel,那么您可以在任何需要的地方自由地使用这些 JPanel — 在 JFrame、JDialog、JApplet、或另一个 JPanel 内部,或通过 CardLayout 与其他 JPanel 交换。
  • 一般情况下应避免继承,尤其是复杂类的继承。这将防止有害的错误,例如无意的方法覆盖(尝试创建一个具有getX() and getY()方法看看我的意思!)。
  • 如果您使用 IDE,请避免继承复杂类:如果您重写复杂类,那么当您调用这些类的对象上的方法时,您将有很多、太多的方法可供选择。
  • 封装性很好,并且允许创建更安全的代码。只曝光需要曝光的部分,并尽可能控制曝光。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

扩展 JFrame 与在程序内创建它 的相关文章

  • 如何对 IntStream 进行逆序排序

    我正在使用 txt 文件读取数字BufferedReader 我想颠倒该流中元素的顺序 以便在收集它们时 它们将从最高到最低排列 我不想在构建数组后进行排序 因为我不知道其中可能有多少元素 我只需要最高的 N 个元素 in new Buff
  • MI设备中即使应用程序被杀死,如何运行后台服务

    您好 我正在使用 alaram 管理器运行后台服务 它工作正常 但对于某些 mi 设备 后台服务无法工作 我使用了服务 但它无法工作 如何在 mi 中运行我的后台服务 MI UI有自己的安全选项 所以你需要的不仅仅是上面提到的粘性服务 你需
  • Google Inbox 类似 RecyclerView 项目打开动画

    目前 我正在尝试实现 Google Inbox 例如RecyclerView行为 我对电子邮件打开动画很好奇 我的问题是 该怎么做 我的意思是 他们使用了哪种方法 他们用过吗ItemAnimator dispatchChangeStarti
  • Java 重写 hashCode() 得到 StackOverflowError

    所以我不太熟悉重写 hashCode 并且我似乎在 hashCode 方法中以某种方式进行了一些无限递归 这是我的场景 我有一个 DuplicateCache 类 它是一个缓存对象 用于检查系统中的重复对象 我有一个静态内部类 Duplic
  • Java:从元素创建 DOM 元素,而不是文档

    如您所知 在 Java 中创建 Dom 元素的正确方法是执行以下操作 import org w3c dom Document import org w3c dom Element Document d Element e e d creat
  • 服务器到 Firebase HTTP POST 结果为响应消息 200

    使用 Java 代码 向下滚动查看 我使用 FCM 向我的 Android 发送通知消息 当提供正确的服务器密钥令牌时 我收到如下所示的响应消息 之后从 FCM 收到以下响应消息 Response 200 Success Message m
  • spring - 强制 @Autowired 字段的 cglib 代理

    我有混合堆栈 EJB 和 Spring 为了将 Spring 自动装配到 EJB 我使用SpringBeanAutowiringInterceptor 不确定这是否会影响我遇到的问题 在尝试通过以下方式自动装配 bean 时 Scope p
  • 想要开发像 Facebook 这样的网站 - 处理数百万个请求 - 高性能 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想用 Java 开发一个像 Fac
  • @EnableTransactionManagement 的范围是什么?

    我试图了解正确的放置位置 EnableTransactionManagement多个 JavaConfig 上下文的情况下的注释 考虑以下场景 我在 JPAConfig java 和 AppConfig java 中有 JPA 配置以及一组
  • 尝试在没有 GatewayIntent 的情况下访问消息内容

    我希望每当我写一条打招呼的消息时 机器人都会在控制台中响应一条消息 但它只是给我一个错误 JDA MainWS ReadThread WARN JDA Attempting to access message content without
  • 具有多种值类型的 Java 枚举

    基本上我所做的是为国家编写一个枚举 我希望不仅能够像国家一样访问它们 而且还能够访问它们的缩写以及它们是否是原始殖民地 public enum States MASSACHUSETTS Massachusetts MA true MICHI
  • 如何在C++中实现模板类协变?

    是否可以以这样一种方式实现类模板 如果模板参数相关 一个对象可以转换为另一个对象 这是一个展示这个想法的例子 当然它不会编译 struct Base struct Derived Base template
  • 从 html 页面和 javascript 调用 java webservice

    我正在尝试从 javascript 调用 java 实现的 Web 服务 使用 NetBeans IDE 我读过很多关于 jQuery 和 AJAX 的内容 但我似乎无法掌握它 假设我的 Web 服务 WSDL 位于 http localh
  • jmap - 组织和堆操作会给 jvm 带来开销吗?

    正如标题所述 需要多少开销jmap histo and jmap heap分别带到jvm 如果一个内存敏感的 Java 进程处于OutOfMemory 例如 大约 96 的堆已满 并且无法通过 full gc 清除 其中一项操作是否有可能将
  • Python 中的 @staticmethod 与 @classmethod

    方法和方法有什么区别装饰的 https peps python org pep 0318 with staticmethod http docs python org library functions html staticmethod和
  • 将 RSA 密钥从 BigIntegers 转换为SubjectPublicKeyInfo 形式

    WARNING 最初的问题是关于 PKCS 1 编码密钥 而问题中的实际示例需要SubjectPublicKeyInfo X 509 编码密钥 我目前正致力于在 java 中从头开始实现 RSA 算法 特别是密钥生成方面 现在我的代码可以给
  • 从java中的字符串数组中删除空值

    java中如何从字符串数组中删除空值 String firstArray test1 test2 test4 我需要像这样没有 null 空 值的 firstArray String firstArray test1 test2 test4
  • Path2D 上的鼠标指针检测

    我构建了一个Path2D http docs oracle com javase 7 docs api java awt geom Path2D html表示由直线组成的未闭合形状 我希望能够检测何时单击鼠标并且鼠标指针靠近路径 在几个像素
  • Java 编码风格、局部变量与重复方法调用

    我更喜欢使用局部变量而不是多次调用同一方法 I prefer this Vehicle vehicle person getVehicle if vehicle instanceof Car Car car Car vehicle car
  • 使用 eclipse IDE 配置 angularjs

    我想开始使用 AngularJs 和 Java Spring 进行开发 我使用 Eclipse 作为 IDE 我想配置我的 Eclipse 以使这些框架无缝工作 我知道我可能要求太多 但相信我 我已经做了很多研究 你们是我最后的选择 任何帮

随机推荐

  • 从 vim 中运行 PHP 文件

    是否可以在 vim 中运行 PHP 文件 我在这里尝试做的是有一个快捷方式 这样每当我需要运行我正在编辑的文件时 就可以跳过退出 vim 并手动调用 PHP 解释器 是的 做你想做的事是可能的 两者都从 vim 中运行 PHP 并创建快捷方
  • 跨域发布到 ASP.Net MVC 应用程序

    我正在开发一个应用程序 其中 HTML 和 javascript 块被传递到不同的客户端 我可以通过将以下内容添加到 Web 配置文件来获取 html javascript 块
  • JavaFX 使对象可见但不消耗(忽略)点击

    标题说明了一切 我在 JavaFX 中有一个矩形 用于透明 不透明效果 但我希望人们能够 点击 它 因此 当我说单击时 我的意思是当您单击它时 Java 应该假装它不存在 而是 单击 该对象下方的任何内容 当您使用 setVisible f
  • 与免费的 Java 分析器相比,商业 Java 分析器有哪些优势? Netbeans 中的那个?

    有时 我必须对 Java 代码进行一些分析工作 我想知道为什么我应该让我的老板使用商业分析器进行调查 而不是只使用 Netbeans 或 JConsole 中的分析器 值得投资的杀手级功能是什么 根据我使用 JProfiler 的经验 它是
  • 未捕获的类型错误:对象 [object Object] 没有方法“apply”

    我在我正在创建的新网站上收到此未捕获的类型错误 但我无法找出导致该错误的原因 我在下面的链接中重新创建了该问题 如果您查看浏览器的 JS 控制台 您会看到发生错误 但没有其他情况发生 http jsfiddle net EbR6D 2 Co
  • 有状态 lambda 表达式和无状态 lambda 表达式有什么区别?

    根据 OCP 一书 必须避免有状态操作 也称为有状态 lambda 表达式 书中提供的定义是 有状态 lambda 表达式是一种其结果取决于管道执行期间可能更改的任何状态的表达式 他们提供了一个示例 其中使用并行流将固定的数字集合添加到同步
  • Android 视频不适合视频视图纵向的宽度并且横向不占据全屏

    Android 视频在纵向时不适合视频视图的宽度 如何使视频的宽度在纵向时适合视频视图的宽度 当我将屏幕方向更改为横向时 我希望视频填充像 YouTube 应用程序一样全屏 当处于纵向时 视频将从屏幕的顶部到中间开始 而当处于横向时 视频将
  • 如何在OnRender中重绘或刷新?

    我想动态地画一些东西 以下代码显示了我的 OnRender 我正在程序中需要的地方设置 DrawItem 但当我打电话时DrawItem 5 我必须调用什么才能调用 OnRender protected override void OnRe
  • ipywidgets:根据另一个小部件的结果更新一个小部件

    我在 IPython 中使用小部件 它允许用户重复搜索短语并在另一个小部件 选择小部件 中查看结果 不同的标题 然后选择其中一个结果 简而言之 search text widgets Text description Search sear
  • FOSUserBundle:删除 emailCanonical 的唯一索引

    我正在尝试删除 emailCanonical 上的唯一索引 以便多个用户可以共享相同的电子邮件地址 但是 我不想直接编辑 FOS UserBundle Resources config doctrine User orm xml 因为对包本
  • 在路径或正文中发布参数

    我正在创建 Rest API 但我对 URL 结构感到困惑 我只需在 Post 请求中向服务器发送一个参数 我应该通过路径变量还是在请求正文中发送它 最佳做法是什么 当前 URL 示例 api v1 users id name name n
  • Android BroadcastReceiver,设备重启后自动运行服务

    您好 我正在编写一个应用程序 当手机重新启动时 该服务将自动启动 而不是单击该应用程序 这是我的代码 BootCompleteReceiver java package com example newbootservice import a
  • Swift - 带图像的自定义 MKPointAnnotation

    我正在尝试创建一个自定义MKPointAnnotation在地图视图上使用 它看起来非常像苹果照片中使用的那个 我将从服务器检索一些照片及其位置 然后我想显示一个像上面这样的注释 并在注释中包含图像 我目前有一个程序可以添加正常的MKPoi
  • 在 .NET 中序列化数据传输对象

    我有一组数据传输对象 例如很多请求 响应消息类 如 MainRequest MainResponse ShutDown Request ShutDown Response 随着项目的发展 新的课程不断出现 这些类必须从和到进行 反 序列化具
  • Swift 2 中的本地化

    我想本地化我的应用程序 我正在使用 Swift 2 我遵循本教程但我遇到了两个问题 1 两种语言的本地化图像均消失 我以相同的方式本地化了多个图像German and English 对于两种语言 一组图像 图像的 en 和 de 版本 都
  • 什么时候2个虚拟地址可以映射到同一个物理地址?

    这里有一个操作系统 计算机体系结构问题 我正在阅读有关缓存的内容 了解如何虚拟索引缓存是减少地址转换时间的选项 我遇到了以下情况 Virtual cache difficulties include Aliasing Two differe
  • 从 .ui 文件生成 .h 和 .cpp

    假设我有文件about ui 我怎样才能使 关于 h 和 关于 cpp 从我的 ui文件 我必须创建一个 moc文件也 我怎么能够compile创建后看看是否一切都正确发生 如果自动生成不起作用 就像我的情况 您可以使用 uic 手动生成头
  • 如何命名 R 图中由垂直线分隔的 x 轴部分(包 ggplot2)?

    我创建了一个堆积面积图ggplot2并添加了垂直线在某些位置上x axis 我现在想命名sections由这些垂直线分隔开 它的一个示例可能看起来像示例图中所示 也欢迎其他解决方案 我有一个向量breaks x axis 以及间隔名称的向量
  • 为什么ndb中required和default是互斥的?

    在旧的 google appengine 数据存储区 API 中 必需 和 默认 可以一起用于属性定义 使用ndb我得到一个 ValueError repeated required and default are mutally excl
  • 扩展 JFrame 与在程序内创建它

    在使用 Swing 制作应用程序时 我见过人们执行以下两件事之一来创建 JFrame 哪种方法更好 为什么 我是 Java 和编程的初学者 我唯一的学习来源是书籍 YouTube 和 Stack Overflow import import