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

自定义Java Swing GUI与Netbeans拖放编辑器

岳劲
2023-03-14
问题内容

与使用Netbeans Drag n Drop编辑器相比,手动编码Java Swing
GUI有什么优势?也许在运行时?在我看来,编辑器会自动创建很多额外的代码,但是我不知道这是否会对加载视图的运行时间产生很大影响。我当前使用编辑器的唯一原因是因为它使GUI的构建变得快速而简单。但是,是否有只能通过编辑器手动编码才能完成的操作?

还有更好的GUI框架吗?我偷看过Java
FX,但我确实希望Github桌面软件具有这种效果。它看起来非常光滑和干净,几乎就像一个Web应用程序。尽管我确定他们使用C
++做到了。在我看来,就图形而言,Java并不多。我的一位朋友评论说,所有Java程序看起来都一样,到目前为止看来是正确的。

我知道也有类似的文章,但是坦率地说它们不是最近的,例如以编程方式编写gui或使用高级gui编辑器(Java
Swing)?在2010年发布,或者在2010年发布了Learning JavaSwing(是否有GUI构建器?)。如果没有新内容,抱歉打扰您。


问题答案:

与使用Netbeans Drag n Drop编辑器相比,手动编码Java Swing GUI有什么优势?

有很多,但让我们从显而易见的…

  • 不会将您锁定在单个开发环境中。这意味着您的代码可共享给其他可能不使用Netbeans的人。当您使用诸如基于Maven的项目之类的东西时,这尤其重要
  • 鼓励您学习API。您对API的实际工作方式有了很好的了解,并学习了许多使流利而灵活的界面的技巧。
  • 鼓励更大程度地分离责任。只需简单地将组件拖动到表单上就很容易,而表单对于封装或管理没有任何作用。通过将UI划分为职责区域,可以更轻松地管理组件之间不同的状态和关系。这也使代码通常更易于阅读,因为您不需要继续丢弃与您要找出的内容无关的内容。
  • 更好的可扩展性。扩展组件在最佳时机上并不容易,但是使用基于表单的组件几乎不可能(或者至少要困难一个数量级)。
  • Netbeans表单编辑器代码是…一团糟…

别误会,我使用表单编辑器,但是在选择表单编辑器之前,我已经为Swing
GUI进行了手工编码十年了。我喜欢用于布置最终屏幕的表单编辑器,并且倾向于在此之前的每一步都使用手工编码的UI,可以将钉子插入孔中。

简短的答案是-恕我直言,除非您可以手工制作多级GUI,否则请远离表单设计者。

我知道有些人认为他们是出色的学习工具,反之亦然,我认为它们使您养成懒惰和不良的习惯,这会影响您将来的工作。

尽管开发环境不应该有所作为,但并非每个人都希望使用Netbeans,这是最好的学习方法

还有更好的GUI框架吗?

那只是个见解。Swing通过使用外观体系结构引入了蒙皮的概念,它使您能够更改组件外观的感觉。

JavaFX通过使用CSS提供了类似的功能

Swing也是高度可定制的,很容易进入组件的“绘画”级别,甚至可以根据需要生成自己的组件。

制作“光滑”
UI的能力与工具包无关,而取决于开发人员。只需将字段和其他组件拖放到容器上很容易,但是开发人员需要对底层API有充分的了解,并需要一些天才才能使它看起来“漂亮”。

漂亮并不总是等于功能。最好的UI是您不必考虑的东西,不会妨碍您的工作而已。当您使用某个程序长达数小时,数天,数周的时间时,您将不会关注UI的外观,而是可以让您轻松完成所需的工作-
IMHO



 类似资料:
  • Java自定义拖放--对TransferHandler没有回调。 我想为JPanel子类实现自定义拖放功能。I遵循标准DnD教程的指导方针: 拖放和数据传输 从表面上看,事情似乎很进步,但当我实际尝试时,我没有得到任何迹象表明任何DnD行为正在发生。事实上,没有调用我的TransferHandler中的任何方法。 所以,让我们回顾一下我所做的... 我创建了自己的容器类,它声明自己来扩展JPane

  • 在“SQL 编辑器”选项卡,你可以创建和编辑视图的 SELECT 语句 SQL。Navicat Data Modeler 为编辑视图定义提供广泛的高级功能,例如:编辑代码功能、智能自动完成代码、设置 sql 格式及更多。 【提示】当你在视图创建工具创建视图,SELECT 语句将会自动生成。 美化 SQL(仅适用于非 Essentials 版) 若要格式化凌乱的 SQL 代码到一个结构良好的脚本,你

  • 我正在研究带有注释的Spring MVC。我还没有注册任何自定义日期编辑 在我的类中,我有一个类型为java.lang.Date的属性 我读到的是customDateEditor默认不注册。但是当我提交带有空白日期的表单时,它抛出了illegalArgumentException 如果我输入日期然后提交它不抛出异常 在那之后,我将绑定结果作为参数添加到控制器方法,现在它正在接受空白值 我没有向控制

  • 问题内容: 我有个小问题。我需要使用自定义编辑器工具包将现有文件加载到。我有一个编辑器套件,一个带有某些扩展名的文件,我需要强制识别文件并使用我的编辑器套件。我只发现这是可能的,但无处可寻。 该工具包也基于HTML和文件。如果文件具有扩展名,则可以使用,但是当我将文件重命名为时,它将以纯文本格式打开。内容类型设置为,但是我无法注册该类型的编辑器套件,因为已经为该内容类型注册了另一个编辑器套件。 实

  • 我已经为我的组织的需求添加了一些自定义属性到注册字段。根据文档自定义了主题并添加了验证。很好用。我可以添加这些属性到帐户管理页面也通过修改帐户模板。

  • 问题内容: 我有一个包含自定义对象的ArrayList的JList,我试图创建拖放到字段中。我无法理解如何在Transferable中打包和接收对象。 据我所知: 澄清:我在从JList中选择对象并从中创建一个Transferable时遇到麻烦。使用上面的代码,对象的toString表示形式只是粘贴在文本字段中,因此我无法从放置的位置提取对象数据。如何“打包”对象本身并将其放入可以从GUI引用对象