问题标签 [jgoodies]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1655 浏览

java - JGoodies 表单演示代码

我必须承认 Forms 布局确实节省了大量时间,与其他 Swing 布局相比。我确实尝试了http://www.java2s.com/Open-Source/Java-Document/Swing-Library/jgoodies-forms/Catalogjgoodies-forms.htm中的其他示例并且工作正常。但是,我对实际开发人员的表单演示代码更感兴趣,它可用吗?除了可执行的 jar 文件之外,找不到它们。

0 投票
1 回答
3775 浏览

java - 如何在 Netbeans 7 中使用 jGoodies 表单布局

我正在使用 Java 1.6.0_29,以及 Ubuntu 和 Netbeans 7。我想将 jGoodies 表单布局与 Netbeans 一起使用。我如何让这个工作?我试图将它添加为与构建器 GUI 一起使用的布局管理器,但我似乎无法让它工作。

谢谢...

0 投票
2 回答
3267 浏览

java - JGoodies... FormLayout

好的,所以我试图获得一个 3 JPanel JFrame,其中左右面板具有固定宽度但可以垂直调整大小,并且中心面板可以水平和垂直调整大小。

由于标准的 LayoutManagers 很糟糕而且很烦人,我被告知行业标准和最容易使用和处理的是 JGoodies。然而,JGoodies 网站上的很多链接似乎都已失效,因为他们的示例/教程有一个 400 页的 PDF,我不想阅读。

无论如何,我已经开始在我的第一个 UI_View 中实现 FormLayout,但我遇到了一个问题

0 投票
0 回答
156 浏览

java - JGoodies Binding + 约束:如何实现呢?

我有一个棘手的问题,可能有一个简单的答案(我希望如此)。

我正在使用 JGoodies Binding 将滑块绑定到ValueModel;效果很好。

假设我有以下(人为的)情况,我想模拟购买巧克力和焦糖,我有 1.00 美元和以下 UI 指标

  • C1 =“焦糖”滑块 = 焦糖糖果的预算 = 0 到 50 美分
  • C2 =“巧克力”滑块 = 巧克力糖果的预算 = 0 到 50 美分
  • C3 =“更改”滑块 = 剩余部分

我想强制约束 C1+C2+C3 = 100,这样:

  • 如果我将 C1 上/下调整 Δx,C3 调整 -Δx
  • 如果我将 C2 上/下调整 Δx,C3 调整 -Δx
  • 如果我将 C3 上/下调整 Δx,C1 调整 y=-floor(Δx/2),C2 调整 -xy

(因此在所有情况下调整的总和正好为 0)

显而易见的方法是为每个 ValueModel 添加一个侦听器,以在每种情况下采取给定的操作。但是我不得不担心两件事:

  • 循环性(C1 的变化触发 C3 的变化,然后 C1 的变化)
  • 同步:我想要一种访问完整集合(C1、C2、C3)的方法,使得三个数字的总和为 100。

我怎样才能做到这一点?

0 投票
1 回答
1913 浏览

swing - 如何使用 JGoodies FormLayout 指定最小和最大单元格大小?

我想指定大小为 200dlu <首选组件大小 < 600dlu

这是一个基本的三栏布局,中间栏有时会是空的,但有时可能会有很长的字符串(文件路径等)。

我目前使用它作为我的专栏规范:“pref, max(200dlu;pref):grow, pref”

但是,当中间列中的文本字段的内容非常大时,这并不能很好地工作——它可以增长到超过屏幕的大小。即使它没有超出屏幕,如果它在大屏幕上变得非常大,它也会显得愚蠢和尴尬。我不想使用滚动条——我只想为列设置一个合理的默认大小,如果绝对必要,用户(实际上是我)可以处理笨拙的文本字段内容滚动机制。

解释一下: - 如果文本字段想要非常小,那么我希望列是 200dlu - 如果文本字段想要非常大,那么我希望列是 600dlu - 否则,就让列成为文本字段的首选大小

JFormsDesigner 产品的文档似乎暗示您可以在使用 JGoodies FormLayout 作为布局管理器时执行此操作(但我不喜欢图形布局管理器工具,我只想使用 formlayout 语言)。

0 投票
3 回答
3276 浏览

java - 获取多行流程布局的首选大小

我想不出一种方法来调整摆动 GUI 中某些组件的大小。一些自定义标签被添加到 FlowLayout 中,在调整对话框大小时它们的行为不应该是这样。该面板正在使用 jgoodies 表单框架构建。

如果使用它,则将 FlowLayout 添加到 xy(3, y)

FlowLayout 展开并出现一个滚动条
标签滚动

如果使用

FlowLayout 使用了可用空间,第二行的项目消失了
tags_vanish

我想将包含 FlowLayout 的每一行的高度扩展到组件的当前高度。不幸的是,首选尺寸始终对应于单行的高度。
其他布局会更合适吗?左侧的粗体文本应向右对齐,然后是 FlowLayout。

来源

[编辑]在试图弄清楚如何做到这一点数周后,实际问题可以恢复为:
一组标签正在添加到 JPanel。此 JPanel 应水平使用所有可用空间(对话大小减去标签名称标签的宽度)并根据需要垂直扩展。如果 JPanel 的高度变得比对话框大,则应显示垂直滚动条(水平滚动条永远不可见)。对话可以显示多个 JPanel,这些 JPanel 将一个接一个(垂直)显示。

这是使用 GridBagLayout 和WrapLayout的尝试:

0 投票
1 回答
2899 浏览

swing - Jgoodies JTable Binding,Swing

任何人都可以提供 jgoodies Jtable 绑定简单示例,使用 Swing 获取扩展 Jgoodies Model 类的 javabean 列表。我找不到一个简单的示例。

提前致谢

0 投票
0 回答
130 浏览

java - JGoodies 阻止我的动作事件触发

我在 JTextField 中添加了一个 actionListener。JTextField 由 JGoodies 创建并被缓冲。如果我更改 JTextField 中的值并按 Enter 键,它会触发我的事件。如果我更改值,失去焦点,返回然后按 Enter,则不会触发任何事件。这发生在其他人身上吗?任何建议都会受到欢迎,我真的被卡住了......

我向它添加了一个 actionListener。如果我更改值然后按回车,它会起作用。如果我更改值,失去焦点,然后重新获得焦点并按 Enter,则该操作不会触发,这是出乎意料的。

0 投票
2 回答
287 浏览

java - JGoodies binding, no commit on focus lost and no commit on every character typed

In the JGoodies Bindings API (Link to API), there is a commitOnFocusLost parameter:

commitOnFocusLost - true to commit text changes on focus lost, false to commit text changes on every character typed

I want the behavior where there is no commit on focus lost and there is no commit while characters are being typed. I only want there to be a commit when I call Bindings.commitImmediatly(). Am I able to do that?

0 投票
3 回答
11675 浏览

swing - Swing 桌面开发

我有一个关于 java desktop-gui-applications 的非常普遍的问题。

我的经验: 在过去的几年里,我开发了一些桌面应用程序,一些单独使用 Swing,一些 Spring-RCP(这很棒,但我仍然不能只押注一个没有看到超过 3 次更新的框架多年了)。我也在看 Valkyrie RCP,但在我看来,那里也没有太多动静。我还使用 Wicket、Tapestry 以及最近使用 JSF2(Primefaces)开发了 Web 应用程序。在 Web 应用程序方面获得了一些经验后,我觉得 java desktop-gui 很久以前就被抛弃了。当然我之前没有注意到,但是在开发web-apps之后,我真的看到了直接比较桌面uis编程是多么痛苦和复杂。

我在找什么: 我在这里没有做任何火箭科学,我最想念的是一种简单的方法来构建以下简单布局的表格

这不仅仅是关于布局,这可能是最小的问题。首先,我正在寻找一种将输入字段的值“绑定”到某种“支持豆字段”的方法。我还想使用直接反馈,这意味着如果 input_a 的验证失败,我希望在 feedbackMessage_a 上显示一条消息,而别处。第三,我想通过这种直接反馈来使用 JSR-303 验证。如果我深入研究典型桌面应用程序的源代码,我通常会看到每个按钮都有一个巨大的动作侦听器,其中所有的值分配、验证和反馈消息创建都是手动编写的。将此与 Tapestry 或 jsf2 等网络框架进行比较。您将在那里做的是将输入字段“绑定”到具有某种表达式语言的变量/字段,就是这样。该值正在得到验证(例如 使用 JSR-303 注释)和(如果所有值都有效)自动传递到支持 bean 的绑定字段。此外,如果发生验证错误,则会创建一条验证消息,其中输入字段的 id 用于标识负责的输入字段。如果该特定 id 存在消息组件,则在此处设置验证消息。这只是流畅和合乎逻辑的。

现在跳回桌面-gui;为了有一个可比较的用户界面,比如说一个有 20 个输入字段的表单,我可能需要 500 行监听器代码,我首先自己读取每个文本字段的值,自己验证它并自己将其写入相应的变量中. 如果我要使用 JSR-303,我可以自己调用验证器,但是回溯到相应的输入字段并在那里设置反馈消息会很痛苦......你猜怎么着......我自己!很痛苦,不是吗?

我的问题: 有什么方法可以减轻疼痛?您如何开发现代桌面应用程序?你使用什么框架,为什么?是否有可能使用类似 webframeworks 的绑定方式?如上所述,我如何实现“直接反馈”?我是否在这里错过了火车,或者在过去几年中编写 Web 应用程序真的变得简单得多,而 java-desktop 似乎被卡住了?(JavaFx 除外,但这对我没有一点帮助)

最后的话 不要误会我的意思,我是java桌面应用程序的忠实粉丝。在像我这样工作的中型公司中,具有同质环境(所有客户端都安装了相同的 java 版本等),我真的看不到 Web 应用程序的好处。使用 webstart,应用程序启动得非常快(当然是在第一次启动之后)。在我看来,尽管 Java 中以前端为中心的 web 框架以光速向前发展,但 java-desktop 几乎根本没有移动。虽然我可以接受现在的方式,但我真的不得不问这个问题。