草庐IT

java - "Un-rollover"显示 JOptionPane 时的 JButton

我有一种情况需要在单击JButton后显示JOptionPane。JButton有一个默认图标和一个滚动图标(当鼠标滑过按钮时显示)。但是,单击按钮并出现JOptionPane后,鼠标悬停图标不会变回原来的状态,并且会继续保持这种状态,直到用户在选择适当的JOptionPane选项后将鼠标移回JButton的框架。单击JButton并显示JOptionPane时,我将如何“取消滚动”?TL;DR:即使在单击JButton并显示JOptionPanel时,JButton也会显示滚动图标。我不喜欢。这是SSCCE:importjava.awt.event.ActionEvent;impor

java - 高分辨率(MS Surface)上的不良 Swing UI 缩放

我目前正在开发一个涉及SwingGUI的小型Java应用程序。在我的开发PC上一切看起来都很好,但是当我在我的MSSurface上运行它时,一些图标似乎对于组件来说太大(或者组件对于图标来说太小)。我的意思是:谷歌研究让我得出结论,这是由于Surface的高分辨率和Win8的缩放功能让一些项目看起来更大一些。所以我将缩放比例重置为100%,它实际上修复了糟糕的缩放比例。不幸的是,这并不能真正解决我的问题。没有变焦,一切都太小了,所以我宁愿不禁用它。但是有什么聪明的方法可以解决这个问题吗?我可以只“取消缩放”我的程序或Java的图标吗?理想情况下,我什至想要放大整个框架,因为一切都相当小

java - 我可以在不更改系统 DPI 设置的情况下设置 Java Swing 应用程序的 DPI 分辨率吗?

我有一个使用SubstanceLookAndFeel的Java应用程序,Windows作为目标平台,我想增加我的应用程序的DPI设置,不更改系统设置。我想这样做是因为我不想强制用户重新启动Windows并且因为许多Windows应用程序似乎在非常高的DPI设置(>120)下出现问题PS:我知道SubstanceLaF允许在运行时缩放字体大小,但那样只会缩放控件的高度,而不是宽度。我希望我的GUI完全缩放,因为如果我设置系统的DPI设置,就会发生这种情况。 最佳答案 不知道这是否可行。外观必须支持它,据我所知,Windows外观不支持

鼠标移动时忽略 Java 鼠标事件?

我最近一直在用java开发一个2d游戏,目前正在努力让事件处理系统正常工作。我试图通过单击鼠标来启动动画,并且一直有效,直到我尝试在单击时移动鼠标。此时什么也没有发生。我同时使用了mouselistener和mousemotionlistener类,但问题仍然存在。这是来自Main的代码:publicclassMLextendsMouseAdapter{publicvoidmouseClicked(MouseEventm){if(m.getButton()==MouseEvent.BUTTON1)guns.playOnce();}publicvoidmouseReleased(Mous

java - 在 Swing 中覆盖 MouseWheelListener

我想覆盖Swing中的鼠标滚轮监听器,但前提是它们按下了控制按钮。监听器将附加到JPanel,这样当他们滚动滚轮时,它将滚动JScrollPane,当他们按下控制按钮并滚动滚轮时,它将放大。JScrollPane的默认滚动在我覆盖它之前(显然)起作用和我自己的听众。这是我的代码:mainPanel.addMouseWheelListener(newMouseWheelListener(){@OverridepublicvoidmouseWheelMoved(MouseWheelEvente){if((e.getModifiers()&InputEvent.CTRL_MASK)==Inp

java - IdeaUIDesigner 中的 Lambda 表达式和 Java 1.8

我正在尝试将Java1.8与IdeaUIDesigner的lambda表达式一起使用,我在maven中有:org.codehaus.mojoideauidesigner-maven-pluginjavac2truetruetrue和依赖com.intellijforms_rt7.0.3当我尝试使用lambda时,它返回编译错误:Failedtoexecutegoalorg.codehaus.mojo:ideauidesigner-maven-plugin:1.0-beta-1:javac2(default)onprojectstockbox-chart:Executiondefault

java - 其他线程中的忙循环延迟了 EDT 处理

我有一个Java程序,它在一个单独的(非EDT)线程上执行一个紧密循环。虽然我认为SwingUI应该仍然是响应式的,但事实并非如此。下面的示例程序展示了这个问题:单击“试试我”按钮应该会在大约半秒后弹出一个对话框,并且应该可以通过单击它的任何响应立即关闭该对话框。相反,对话框需要更长的时间才能出现,和/或在单击其中一个按钮后需要很长时间才能关闭。问题出现在Linux(两台具有不同发行版的不同机器)、Windows、RaspberryPi(仅限服务器VM)和MacOSX(由另一位SO用户报告)上。Java版本1.8.0_65和1.8.0_72(都试过了)具有多核的i7处理器。EDT应该有

java - 如何向 JLabel 添加选取框行为

如何给JLabel的文本添加跑马灯行为?我试过了JLabelsearch=newJLabel("Search");但它不起作用。 最佳答案 请参阅http://forums.sun.com/thread.jspa?forumID=57&threadID=605616有关如何执行此操作的详细信息:)(编辑:我可能会直接在paint()方法中使用System.currentTimeMillis()而不是使用定时器,然后除法/取模(%)使其进入“x偏移”所需的范围的例子)。通过增加分度数的大小,可以改变速度((System.current

java - 拖放图像

我需要在swing中创建一个拖放系统,其中在拖动过程中将被拖动对象的图像附加到光标。理论上这是可以实现的publicIconTransferHandler.getVisualRepresentation(Transferablet)但似乎存在一个长期存在的错误(here),这意味着永远不会调用此方法。我知道我可以通过使用DragSource等实现我自己的DnD系统来做到这一点,但是有谁知道更简单的解决方法可以满足我的需要? 最佳答案 Java1.4不支持方法TransferHandler.getVisualRepresentatio

Java 数据绑定(bind)最佳实践

即使我不是Java的新手,我也只在学校/大学环境中使用过它,所以我不知道企业中使用的所有最佳实践。特别是我现在正在开发一个Java桌面应用程序(在UI层使用Swing),我对与swing组件进行数据绑定(bind)的最佳实践特别感兴趣。例如,我可以在模型层有一个模型对象列表,我需要在JTable中显示它们。Then,whenasinglerowoftheJTableisselected,IneedtodisplaysomeinformationregardingthemodelobjectcorrespondingtotheselectedrowonsomeJLabels.我应该使用哪