Tag: 框架

Java GUI框架 – 哪些在那里?

我主要开发Java EE,现在我需要编写一个小的本机Java应用程序。 但是,我有点迷失,哪些框架(Swing,SWT等)在那里? 其中一个还有一些快速开发吗? 也许有人可以提供一些链接或分享他的经验。

Javavalidation框架

我曾经遇到过java的validation框架,在这里您编写了一个保护数据类型完整性的方法,并且该数据类型上的任何CRUD操作都自动调用此方法。 有谁知道这个框架是什么? 我只是想避免对附加到数据类型的每个CRUD方法进行重复validation。

每个Play框架Web请求是否使用新的dependency injection控制器实例进行处理,但那么静态控制器方法呢?

我的问题是关于Play框架中Java控制器的生命周期,如果控制器是有状态实例或静态方法无状态,以及如何在控制器代码中使用dependency injection。 每个Web请求是否由Play控制器类的新实例处理,即控制器是否可以在诸如注入控制器构造函数的服务等字段中存储状态? (在文档中的位置解释了吗?) 自早期版本(如果是,在什么版本?)Play框架是否已更改,关于控制器是有状态实例还是静态方法的无状态控制器? 在哪里可以看到有关在使用有状态控制器时框架如何将服务注入控制器实例的代码示例以及如何将服务注入静态控制器方法的示例? 关于后者,即注入静态方法,我认为要么必须是框架将添加的方法的参数,要么如果不可能,您可能必须使用方法中的服务定位器,例如实例化Guice模块类然后从静态控制器方法中使用“injector.getInstance”。 在以下页面的“dependency injection控制器”部分中可以了解该主题: https://www.playframework.com/documentation/2.4.x/JavaDependencyInjection 但是,它没有用代码显示如何将服务实际注入到控制器实例中(但可能与其他“组件”相同,即使用@Inject注释)当然它当前没有显示如何使用静态控制器方法的DI 。 我对这些事情感到困惑,因为我没有发现文档清楚我的问题,而且我还在Play书(从2013年)中读到控制器方法应该被编程为无状态,控制器方法应该是静态的。 但是,当现在使用激活器生成具有最新Play版本(2.4.6)的Java Play应用程序时,我可以看到生成的Controller方法(Application.index)不是静态的。 此外,在以下文档页面中,控制器方法不是静态的: https : //www.playframework.com/documentation/2.4.x/JavaActions 这是令人困惑的,因为了解每个请求是否由Controller实例处理是非常基础的(即,如果可以使用状态)我认为这应该在关于控制器/动作的页面上比当前更好地记录。文档(上面链接的页面)没有解释它。 有关dependency injection的文档在“dependency injection控制器”部分提到“静态路由生成器”时涉及静态和非静态方法的主题,但我认为应该更好地解释包括代码示例。 如果Play团队中有人正在阅读此问题,那么请在上面的链接页面中添加一些信息,例如请提及(如果我的理解是正确的)在以前版本的Play中控制器方法是静态的,对于那些版本你永远不应该在字段中存储状态,但是在更高版本中(从版本x开始?),每个请求都由控制器的实例处理,因此可以使用状态(例如框架注入的构造函数参数)。 还请提供有关静态控制器方法使用的注入和注入有状态控制器实例的代码示例,每个请求只有一个实例。 dependency injection页面中的“组件生命周期”部分仅提到“组件”,但我认为它也应该明确控制器生命周期及其注入,因为它是一种基本且重要的知识,可以清楚地向所有开发人员进行通信以避免错误由于对有状态与否的误解而引起的。

AWT自定义渲染 – 捕获平滑resize并消除resize闪烁

我已经看了几个月了,到目前为止这是我提出的最好的。 由于我们的应用程序以这种方式运行并且不会被重写,因此结构(在EDT之外呈现)不值得辩论。 该应用程序具有布局模型和脚本模型,它们是集成和驱动渲染,因此渲染必须在AWT绘制模型之外执行。 我想要达到的是执行自定义渲染的最佳和可靠的方法。 以下SSCCE对我们来说效果很好。 但是,在帧大小调整期间,它有两个缺点: 偶尔有闪烁,特别是在快速resize时 从paint()调用调用resize(通过checkSize)调用的“smooth resize”hack仅适用于扩展。 缩小框架时,通常不会渲染,直到释放鼠标按钮 此外,但在这里不太明显,它偶尔会抛出IllegalStateExceptions – 可以简单地捕获/忽略这些吗? 同样有用的是输入这是否是在EDT之外发生的自定义渲染路径的最佳方法。 我尝试过最多,并做了相当广泛的研究。 这种组合(后备缓冲图像,双缓冲策略)似乎效果最好。 import java.awt.Color; import java.awt.Dimension; import java.awt.Frame; import java.awt.Graphics; import java.awt.Insets; import java.awt.Toolkit; import java.awt.event.ComponentEvent; import java.awt.event.ComponentListener; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionListener; import java.awt.image.BufferStrategy; public class SmoothResize extends Frame implements ComponentListener, MouseMotionListener { public SmoothResize() { addComponentListener(this); addMouseMotionListener(this); } private boolean […]