问题标签 [saf]

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 投票
5 回答
3196 浏览

java - 有没有比 Swing 更好的 Java 应用程序框架?

我正计划从事一些爱好 Java 项目。我做过一些小规模的项目,所以我熟悉语言本身并使用 Swing 构建 GUI。我想让我的工作少一些临时性,也许可以找到一些在现实世界中可能有用的工具。

NetBeans 现在与Swing 应用程序框架捆绑在一起,这似乎是一个非常有用的工具。它有助于弥合了解如何创建 JFrame 和如何在更大的应用程序上下文中有效使用 JFrame 之间的鸿沟。问题是有大量 API 完全没有文档记录,并且几乎没有关于如何使用它的文档。常见问题解答中只有两个问题,邮件列表几乎都死了,我什至无法判断该项目是否正在积极开发或是否已被放弃。我主要基于发布在项目主页上的两年前的 JavaOne 演示文稿,设法启动并运行它。

有更好的选择吗?是否有另一个工具/库/API 以一种对新手更友好的方式做同样的事情?请注意,我目前正计划开发桌面应用程序,而不是寻找像 Spring 和 Hibernate 这样的 J2EE 框架。

0 投票
2 回答
14757 浏览

java - 如何将 Swing 应用程序转换为 Applet?

我使用 Swing 应用程序框架创建了一个桌面应用程序,现在如何将其转换为小程序?主类扩展 SingleFrameApplication。

已编辑:这是起始类,使用了 NetBeans GUI 构建器:

0 投票
1 回答
388 浏览

java - 使用 Swing 应用程序框架的组件资源注入问题

我在使用Swing Application Framework的组件资源注入时遇到问题,我阅读了 Sun 提供的教程,它有点工作。

情况是我有一个Program从 de SAF 提供的类扩展的类SingleFrameApplication,现在我想从属性文件中获取我的组件(按钮和标签等)的文本,并且它可以按预期对该Program类工作,(我创建了一个名为的子目录resources并将Program.properties文件放在那里)。但是,我有一个MainFrame名为mainpkg.gui(包Programmainpkg)的子包,我创建了相应的子resources包来放置MainFrame.properties文件,但它不起作用!我无法得到捆绑包(自动,我想如果我使用该ResourceMap.getXXX()方法我会得到这些东西。

我究竟做错了什么?

提前致谢!

0 投票
2 回答
1111 浏览

java - Swing 应用程序框架在 Linux 中不保存程序的会话(窗口位置、大小等)

我正在使用 Swing 和 Swing 应用程序框架(JSR 296)在 Java 中开发一个小型应用程序。它应该在 Windows 和 Linux 下工作。

在 Windows XP 会话(窗口位置、大小等)被保存,但在 Linux 中却没有!程序扩展 SingleFrameApplication。它应该自动保存窗口位置。没有为此编写额外的代码。我跟踪了框架来源,但没有发现任何问题。会话存储必须将窗口状态保存到主文件夹中的 .MyApp 目录中。该文件不存在那里。我有一些用户参数,我使用 java 属性手动保存到 xml 中,而不是会话存储!该文件被保存到主文件夹中的 .MyApp 目录中,没有任何问题!

有谁知道为什么程序在 Linux 中不保存其状态,但在 Windows 中却保存?

已解决:原因是 OpenJDK 与 SAF 不兼容。在我从 Oracle windows 中删除 OpenJDK 并安装 JDK 之后,就变成了保存和恢复它们的位置和尺寸。

0 投票
2 回答
1723 浏览

java - Swing 应用程序框架会话存储

我一直在使用 Swing 应用程序框架,并且对它的会话状态存储非常满意。我想知道是否可以删除(清理)持久状态。

  • 的所有对话框形式。或者
  • 具体的对话形式。

如果没有,有没有人找到一种干净的方法来实现这一点(存储的文件不会保存在同一位置,具体取决于操作系统等)。

谢谢

0 投票
4 回答
42951 浏览

netbeans - 为什么我在 Netbeans 7.1 中找不到 Java 桌面应用程序

我从http://netbeans.org/downloads下载了带有所有捆绑包的 Netbeans 7.1,并在 Windows 7 上成功安装了它。

但是当像 7.0 那样添加新项目时,我找不到应该在 Java 类别下的 Java 桌面应用程序。

它在哪里?或者 7.1 中的替代品是什么?我需要一些东西来通过拖动组件来创建 GUI。

谢谢。

0 投票
1 回答
871 浏览

java - 在多线程应用程序中使用 java.util.logging 进行日志记录

我有一个基于 SAF(Swing 应用程序框架)的 Swing 应用程序。所有日志记录都是通过 java.util.logging 和两个不同的处理程序完成的:控制台和文件。当我创建要由后台任务执行的操作时,这些不记录的任务不会显示在控制台或文件上,即使在调用 logger.log() 方法时这里没有错误/异常。

从不同线程使用 java.utils.logging 类有什么问题吗?我怎样才能更好地检查/解决这个问题?

谢谢,朱塞佩

0 投票
1 回答
139 浏览

java - BSAF 停止打开数据库连接

使用 Better Swing 应用程序框架 (BSAF) 运行 Java 应用程序,如果我在程序启动后尝试打开与数据库的连接,它就会停止。如果我碰巧在启动前运行了连接,它就可以正常工作。就我而言,没有解决方法,因为我要求用户主动打开和关闭连接。

以下代码是发生的事情的示例

我正在使用 Windows 环境,如果这可能是某种问题的话。恐怕这可能与 BSAF 使用 EDT 运行应用程序的方式有关,或者与ClassLoader. 只是为了澄清:阻塞 EDT 不是问题,它工作正常,问题是指令DriverManager.getConnection(DB_URL);卡住并且没有抛出异常。

编辑:我刚刚发现,如果我碰巧在启动之前打开了一个连接,我以后可以正确打开它们。

编辑 2:添加了一个更具解释性的示例代码。

编辑 3:关于可能原因的澄清信息

0 投票
0 回答
180 浏览

asp.net - 实现 WCF 时出错

当我调用托管在服务器上并在另一台服务器上开发的 WCF 服务时收到此消息

0 投票
1 回答
199 浏览

java - 如何调试 DO_NOTHING_ON_CLOSE 失败?

据我了解,在一个摇摆应用程序中,我将mainFrame我的应用程序告诉了DO_NOTHING_ON_CLOSE.

显然,我将添加一个窗口侦听器以及稍后不要修饰它的内容,但现在,我只需要在单击 X 时不关闭窗口。但是窗口确实关闭了。

看起来如此简单的操作,我什至想不出如何去调试它。我错过了一些非常明显的东西吗?

编辑:这是 SurveyApp 类中的 getApplication 方法:

Edit2:由于 HoverCraft 表明 mainFrame 不是罪魁祸首,也许对应用程序结构的概述将为我们指明正确的方向。整个应用程序包含在单个 JPanel 中,mainPanel. 反过来,面板包含在public class SurveyView extends FrameView. 我所有的组件都添加到了面板中,这是一个卡片布局,它在几个其他 JPanel 中循环。据我了解,关闭操作是为框架保留的,而不是为视图或面板保留的。因此,为什么我的第一个想法是针对应用程序的主框架。

我知道主框架确实存在。我试过System.out.println(SurveyApp.getApplication().getMainFrame())了,它输出了这个怪物(为了可读性而换行):

我注意到标题实际上是显示在我的应用程序标题栏中的标题。但后来我看到 DO_NOTHING_ON_CLOSE 已设置,应该是这样,但应用程序仍然关闭,这意味着,我认为,气垫船是正确的 - 这不是正确的目标。

Edit3:进一步的研究表明,确实,netbeans 构建了每个面板并将其添加到mainPanel,一旦添加了所有面板,它就会调用setComponent(mainPanel);,我假设它在其他地方建立,但是整个程序的 Ctrl-F 没有任何结果。有更多使用netbeans经验的人知道它使用的所有这些方法是在哪里定义的吗?如果我能找到那个,我可能能够弄清楚哪个框架需要不关闭集。

Edit4:好吧,我想我已经接近了。被mainPanel设置为 的组件FrameView,它似乎是由 java SingleFrameApplication 创建的包装器。我在这里做了一些阅读:http: //bellquel.bo.cnr.it/appframework/org/jdesktop/application/SingleFrameApplication.html看起来我实际上是正确的:由SFA创建的框架被命名为mainFrame,并且根据对于文档,“getMainFrame()返回用于显示此应用程序的 JFrame。” 这意味着我的目标是正确的 JFrame,并且根据我之前的测试,默认的关闭操作实际上被设置为什么都不做。那么给了什么?我的目标是正确的框架,它正在正确设置操作,然后它就被忽略了?什么可以覆盖这样的默认关闭操作?