草庐IT

java - 在*多线程* Swing 应用程序中使用 Hibernate 进行 session 管理

我目前正在从事我的一个(相当大的)宠物项目,一个本质上需要多线程的Swing应用程序。几乎所有的用户交互都可能通过互联网从一些远程服务器获取数据,因为我既不控制这些服务器也不控制互联网本身,因此较长的响应时间是不可避免的。当EDT繁忙时,SwingUI显然无法重绘自身,因此所有远程服务器调用都需要由后台线程执行。我的问题:后台线程获取的数据通过本地(内存中)数据库中的数据“丰富”(远程服务器返回本地数据库中数据的ID/引用)。这些数据后来最终被传递到EDT,在那里它成为View模型的一部分。某些实体此时未完全初始化(启用延迟获取),因此用户可能会触发延迟获取,例如在JTable中滚动。

Java 游戏 2D 重叠阴影与 Swing

我目前正在使用Swing作为我的主要绘图组件开发2DJava游戏。每个对象都有一个阴影(BufferedImage),但每个阴影都与其他阴影重叠。是否可以只让阴影不相互重叠?因为如果物体在玩家下方,我仍然希望阴影覆盖玩家,如果物体在玩家上方,则不会。为清楚起见,这里有一张图片:我看过alpha合成,我想我需要SourceOut?我还考虑过将所有阴影(没有透明度)绘制在一层上,然后以透明度绘制它,但它不会像以前那样绘制在播放器和其他对象上。我有一个Draw对象,它是一个JPanel并覆盖了paintComponent方法。在这个方法中,我绘制当前房间的地板,然后遍历属于当前房间的对象列表

英特尔 HD 3700 linux 的 Java 8 Swing 渲染问题

我在Kubuntu18.04的java8update181中开发了一个应用程序。在我的开发PC中,我有带有Intel®HDGraphics530的Inteli3-6100。所有图形都是使用Swing完成的,并且使用这种硬件配置,一切正常。在生产PC上,我有Intel(R)Celeron(R)CPUJ1900和Intel®HDGraphicsforIntelAtom®ProcessorZ3700Series。使用相同的操作系统和Java版本运行相同的版本我注意到我的图形在Swing中出现问题。Swing组件如jLabels、jButton等不更新。例如,框架A的标签B带有文本“旧文本”,

java - Swing GUI 与域逻辑通信的最佳方式?

我在许多POJO中实现了一些域逻辑。我想编写一个Swing用户界面以允许用户启动并查看各种域操作的结果。UI和域之间通信的最佳模式/框架/库是什么?这归结为:能够将用户手势转换为域操作的UI能够将状态/结果信息发送回UI以供显示的域我知道MVC是一个宽泛的概念,并且研究过Observer模式(如果我理解正确的话,它的Java实现有一些缺点),但我想知道这个问题是否有公认的最佳实践? 最佳答案 绝对是MVC-像这样的东西example这清楚地把事情分开了。Swing示例的问题在于它们似乎显示MVC都在swing中工作,这对我来说似乎不

java - 如何为 swing 组件做有效的 TDD

我正在研究Swing,我想知道如何有效地为我的GUI应用程序执行TDD。我已经用abbot和fest做了一些事情……但是我还是觉得没有效果,它就像只做功能测试,如果有人有好的建议请发帖.. 最佳答案 TDDGUI有两个方面。有GUI设置本身(比如拖放),然后是GUI的功能(按此按钮在Web浏览器中启动URL)。关于GUI本身,我推荐TestJustAfter,您可以在其中编写一些代码并查看Swing实际上执行了您期望的操作,然后将该代码放入锁定行为的可测试方法中。您仍然保持它很小,因此您需要测试在某种程度上驱动设计,但最终Swing

java - 如何在 Swing 应用程序中使用 Guice

我有一个Swing应用程序,我想将它从意大利面条转换为使用Guice的依赖注入(inject)。使用Guice提供配置和任务队列等服务进展顺利,但我现在开始使用应用程序的GUI,但不确定如何继续。该应用程序基本上是一个JFrame,在JTabbedPane中有一堆选项卡。每个选项卡都是一个单独的JPanel子类,它布置了各种组件并需要服务来在按下某些按钮时执行操作。在当前的应用程序中,这看起来有点像这样:@InjectpublicMainFrame(SomeServiceservice,Executorex,Configurationconfig){tabsPane=newJTabbe

java - Swing BoxLayout 问题 - 无法让填充物完成它们的工作

我想做什么在Swing中,我尝试使用BoxLayout或等效的线性容器,但容器中的项目垂直拉伸(stretch)。在我的应用程序中,我不希望它们垂直拉伸(stretch)。我知道我可以在组件上设置preferredSize或maximumSize,但下面的代码只是一个复制器,我不能硬编码或最大化组件的大小,它们实际上更复杂并且动态。而且我不能将BorderLayout与BorderLayout.TOP位置一起使用,因为如果我这样做,滚动条将永远不会显示。我可能需要滚动Pane。我尝试过的所以我尝试在BoxLayout中使用fillers,如UsingInvisibleComponent

Java Swing : Focus issue

我正在为我的游戏制作关卡编辑器。我有一个属性面板,我可以在其中修改所选对象的属性。我还有一个保存按钮来编写关卡xml。当编辑器组件失去焦点或按下Enter时,将提交(*)字段编辑。这很好用,但唯一的问题是当我执行以下操作时:编辑字段按保存按钮因为,发生的事情是这样的:我编辑字段我按下保存按钮关卡已保存字段失去焦点修改已提交如您所见,这是错误的顺序。当然,我希望该字段失去焦点,这会导致提交并然后保存关卡。是否有技巧、hack或变通方法使字段首先失去焦点,然后执行保存按钮的Action监听器?提前致谢。(*提交=对字段的编辑也在对象属性中进行)编辑:对于我使用带有focusLost的Foc

基于 Java 的 GUI 自动化(不限于基于 Java 的 GUI,如 Swing)

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭7年前。Improvethisquestion是否有任何用Java编写的开源工具/框架可用于自动化所有Windows应用程序(不像Abbot或FEST,它们自动化基于Java的GUI应用程序)。我听说过WHITE这有点像.Net语言。是否有基于Java的替代方案或Java中的框架可以使用WHITE或UIAutomationFramework(通过JNI或其他方式)?似乎有很多基于Java的Web自动化和测试工具,

java - Swing MVC - 事件传播和数据共享

我正在尝试在swing应用程序中应用MVC模式。但是,鉴于您有面板的嵌套层次结构,我面临两个主要问题,例如父->子->孙子->孙子。问题1:当您有这样的层次结构时,如何在Controller和View之间传输数据?如果我去将数据从parent传递给child,那么就会有很多重复,如果我改变一个child,所有parent都需要改变。我不希望View直接从数据库访问数据,我希望数据仅通过Controller传输到View。问题2:如何在这种层次结构中将事件从View传播到Controller?我正在考虑使用PropertyChangeListener。如果Controller必须采取任何