jjzjj

java - 扩展 Swing 的 ToolTipManager 以更改悬停时的行为?

我想在Swing中实现一个具有自定义行为的工具提示:用户悬停在组件上的时间越长,工具提示中应显示的详细信息就越多(即,几秒钟后添加几行新行)用户悬停在组件上)。我只需要检查这是否真的适用于Swing而不会变得太乱。我现在的想法可能是:扩展工具提示管理器覆盖mouseEntered以启动计时器(也许使用javax.swing.Timer?)。调用setToolTipText和createToolTip刷新工具提示并定期添加新信息覆盖mouseExited以重置计时器可能使用setDismissDelay将关闭延迟设置为更长的时间(或Integer.MAX_VALUE)这样的事情是否可行,

java - 非常奇怪的 Java2D setClip() 效果 - 错误?

我想创建一个具有自定义形状和透明度的对话框,比如指向某个组件的信息气泡。为此,我将JPanel添加到JDialog并覆盖面板的paintComponent(Graphics)方法。面板本身包含常规的JLabels和JButtons。工作正常,但只要我在面板绘制代码中使用Graphics2D.setClip(Shape),组件就会被背景overdraw。如果我不设置剪辑(设置为全新的Graphics2D对象,同样如此),一切正常。这让我很困惑,我不知道我能做些什么来解决它。P.S.:我不能在JDialog上使用setShape(Shape),因为那里没有抗锯齿功能。P.P.S.:实际用例

java - 使用 WindowFinder 查找模态对话框

我正在使用FEST测试我的Java对话框,我需要测试是否创建了一个新的模式对话框。@BeforepublicvoidsetUp()throwsException{TestFrametestFrame=GuiActionRunner.execute(newGuiQuery(){@OverrideprotectedTestFrameexecuteInEDT()throwsThrowable{panel=newCustomPanel();returnnewTestFrame(panel);}});frameFixture=newFrameFixture(testFrame);frameFix

java - 如何使 Java 9 在 HiDPI 显示器上使用更高分辨率的图像?

我下载并安装了最新的Java9抢先体验版,很高兴地发现Windows上的JavaSwing应用程序现在能够以正确的大小呈现组件。使用HiDPI显示器的客户不再需要以预期宽度和高度的一半使用我的应用。但是我注意到,在我的Swing应用程序中,我自己的图标被简单地缩放为宽度和高度的两倍,使它们看起来参差不齐。我确实有一整套正常大小(例如foobar.png)和双倍宽度/高度(例如foobar@2x.png)的所有图标。我使用Apple命名约定。我如何让Java9轻松找到并使用可用的高分辨率版本的图像,而无需为此手动编码?代码示例总能让问题更清晰,那么Java9是否有一个多分辨率图标类,我可

java - 为什么我的自定义 Swing 组件在我移动鼠标时重新绘制得更快? ( java )

我正在尝试使用Java和Swing制作2D游戏,但窗口刷新速度太慢。但是,如果我移动鼠标或按键,窗口会以应有的速度刷新!这是一个GIF,展示了窗口如何仅在我移动鼠标时快速刷新。为什么窗口刷新这么慢?为什么鼠标和键盘会影响它的刷新率?如果可能的话,如何让它一直快速刷新?背景信息我使用javax.swing.Timer每1/25秒更新一次游戏状态,之后调用repaint()在游戏面板上重绘场景。我知道计时器可能不会总是延迟恰好1/25秒。我也明白调用repaint()只是要求尽快重绘窗口,并不会立即重绘窗口。我的显卡不支持OpenGL2+或硬件加速3D图形,这就是我不使用libgdx或JM

java - 如何在不传递 ID 的情况下识别在哪个 Java Applet 上下文中运行?

我所在的团队开发了一个相当大的SwingJavaApplet。我们的大部分代码都是遗留的,并且有大量的单例引用。我们将它们全部集中到一个“应用程序上下文”单例中。我们现在需要的是创建一些方法来分离共享上下文(在当前显示的所有小程序之间共享)和非共享上下文(特定于当前显示的每个小程序)。但是,我们在调用单例的每个位置都没有ID,我们也不希望将ID传播到所有位置。识别我们正在运行的小程序上下文的最简单方法是什么?(我试过搞乱类加载器、线程组、线程ID……到目前为止,我找不到任何能让我识别调用来源的东西)。 最佳答案 单例狗是邪恶的,你还

java - 从 Swing 应用程序远程访问 GWT 服务器

简单来说,我编写了一个JSESwing应用程序,它需要与我之前编写的GWT服务器通信。我非常喜欢GWT在它的javascript和服务器端之间进行远程处理的方式,并希望我可以利用这种机制。有没有人设法以这种方式使用GWT-RPC?我应该改用ReSTLet吗? 最佳答案 如果您正在进行Java到Java的通信,RMI会更简单、更方便。将数据序列化为某些XML或基于URL的格式或从中序列化数据不会增加很多值(value)。使用EJB3,部署和调用远程对象非常简单。如果以后需要,您可以将这些EJB转换为Web服务,但是对于Java到Jav

java - 如何在 JavaFX 中使用 jFrames?

我刚刚在Swing上看到一篇文章在JavaFX中使用。如何将使用jFrame显示图形的应用程序移植到JavaFX中?另外,jButtons和jSliders会以正常方式工作吗?我知道这是一个一般性问题,但我对JavaFX知之甚少,并且对通过JavaFX包将一些桌面应用程序移植到Web感到好奇。 最佳答案 javafx文件:importjavax.swing.JComponent;importjavafx.ext.swing.SwingComponent;classNewFxComponentextendsSwingComponent

java - 如何让 swing 应用程序知道屏幕尺寸的变化?

当我的swing应用程序正在运行时,我更改了屏幕的大小(例如,从1024x768到800x600)。是否有任何事件我可以收听以获得有关此的通知?或者,我可以每隔几秒检查一次屏幕尺寸,但Toolkit.getScreenSize()一直告诉我旧值。更改后如何获得真实屏幕尺寸?环境:Linux(在SuSEES11和Ubuntu9.04上测试)感谢您的帮助。马顿 最佳答案 以下对我有用,但我使用的是Mac,所以我不能确定它是否适用于Linux:System.out.println(GraphicsEnvironment.getLocalG

java - Netbeans JSR-296、Swing 和 JavaFX,我们现在打算使用什么?

我开始学习Java开发(我以前用C++开发),我使用的是一些较旧的Material,但是,我也想了解Java的最新发展和建议。我做了一些关于Swing和JavaFX的背景研究。我了解到JavaFX脚本的开发已经停止,但是,FX的第2版正在开发中,所以我不确定这最终会是什么,因为我认为脚本是标准的主要部分。在使用Netbeans时,我发现Swing的进一步开发即将停止,Netbeans支持(JSR-296)也将停止。Netbeans建议转向Netbeans平台API,我不愿意这样做,因为我想将Java作为一种真正的跨平台语言来学习,而不是被任何细节所束缚。这让我想问一个问题,在Java世