草庐IT

java - 您的类应该实现 ActionListener 还是使用匿名 ActionListener 类的对象

实现java.awt.event.ActionListener接口(interface)的最佳方法是什么?让您的类实现ActionListener并将其添加为ActionListener:classFooimplementsActionListener{publicFoo(){JButtonbutton=newJButton();button.addActionListener(this);}publicvoidactionPerformed(ActionEvente){}}或者添加一个匿名ActionListener类的对象:classFoo{publicFoo(){JButtonb

java - 在 Eclipse 中导入现有的 Java 项目,但 JFrame 的设计 View 不存在?

我在eclipse中导入现有的java项目:在eclipse中:1.转到文件->导入2.General->ExistingProjectsintoWorkspace然后点击Next3.点击浏览并选择项目然后点击完成然后我打开一个JFrame,但我看到JFrame的源代码和设计选项卡不存在。如何查看设计标签? 最佳答案 找到解决方案:在PackageExplorer中右键单击JFrame文件,然后选择OpenWith->WindowBuilderEditor现在设计标checkout现了

java - 这些错误和警告图标作为 Java 资源在哪里?

我有一个自定义树单元格渲染器,我用它来渲染自定义图标JTree,我真的很喜欢JOptionPane分别为警告消息和错误消息显示的警告图标和错误图标。显然,我可以使用以下代码来获取我自己使用的图标,但这太麻烦了,需要我实例化我永远不会使用的对话框:publicclassValidationCellRendererextendsDefaultTreeCellRenderer{privateIconwarnIcon;privateIconerrorIcon;publicValidationCellRenderer(){JOptionPaneoptionPane=newJOptionPane(

java - 将 Java Swing 转换为基于 Web 的应用程序

我有Javaswing应用程序。我想转换为网络基础应用程序。什么是最简单的方法?有没有可用的工具,最好是开源代码? 最佳答案 有一个新的开源项目webswing.org.它是一个Web服务器,您可以在其中部署swing应用程序。该应用程序通过websockets呈现为htmlCanvas,因此您可以获得与桌面上完全相同的外观和感觉。 关于java-将JavaSwing转换为基于Web的应用程序,我们在StackOverflow上找到一个类似的问题: https

java - addKeyListener() 不适用于 JPanel

我正在尝试制作游戏引擎。我制作了Game类,但错误出在KeyBoard类中。这里我留下一些代码。类::游戏packagetransfer2pc.co.cc.game.tileengine;importjava.awt.Graphics;importjava.util.HashMap;importjavax.swing.JPanel;importtransfer2pc.co.cc.game.tileengine.input.KeyBoard;publicabstractclassGameextendsJPanelimplementsRunnable{/****/privatestatic

java - Java 9 中的 JFrame 缩放

在Windows7上左侧的Java9u4和右侧的8u144下运行的代码完全相同。Java9似乎让窗口变大了。是什么原因造成的-JEP263?我怎样才能禁用它?publicclassSimpleFrame{publicstaticvoidmain(String[]args){JFrameframe=newJFrame();frame.getContentPane().add(newJLabel("Horse"));frame.setSize(newDimension(200,100));frame.setVisible(true);}} 最佳答案

java - 在 Windows 上设置 Java 进程名称

我们的JavaSwing应用程序在Windows上运行,并使用Launch4J包装在一个exe文件中。我们想自定义我们的应用程序进程名称和描述(在Windows的任务管理器中),因为它当前是“javaw.exe”和“JavaPlatformSEbinary”(这让我们的客户感到困惑)。虽然旧版本的Launch4J启用了使用来更改它,此选项现已失效,因为它在Win7中不再起作用。是否有任何其他(简单的)解决方法来自定义我们的应用程序进程名称和描述?例如,更改javaw.exe可执行文件名似乎是一种方法(因为我们将其嵌入到包装的exe文件中)但是如何向launch4j指示jvm文件名已更改

Java:如何在 Swing 中进行双缓冲?

编辑两个为了防止刻薄的评论和单行答案遗漏重点:IFF就像调用setDoubleBuffered(true)一样简单,那么我如何访问当前离线缓冲区,以便我可以开始弄乱BufferedImage的底层像素数据缓冲区?我花时间写了一段运行的代码(看起来也很有趣)所以我真的很感激答案实际回答(真是令人震惊;)我的问题并解释这是什么/如何工作而不是一个-类轮和尖刻的评论;)这是一段可以在JFrame上弹跳正方形的有效代码。我想知道可用于转换这段代码以使其使用双缓冲的各种方法。请注意,我清除屏幕并重新绘制正方形的方式并不是最有效的,但这实际上不是这个问题的目的(在某种程度上,为了这个例子,它有点慢

java - 机器人方法是否需要在事件队列上运行?

Robot是AWT库的一部分,但它似乎与库中的大多数其他部分大不相同。我正在创建一个SwingGUI,它将Swing与JavaNativeAccess(JNA)和Robot混合在一起,以允许Java驱动某些MSWindows/Citrix工作程序。我的直觉是,由于Robot将在“平台的native输入队列”上对事件进行排队,所以我最不想做的就是在EDT上运行它,但另一方面,AWT和Swing库中的大多数类应该在Swing事件线程上运行。因此,为了在我的脑海中澄清这一点,让我问一个尽可能具体的问题:机器人方法(尤其是按键按下和释放、鼠标移动、鼠标按下和释放)应该在Swing事件调度线程(

java - 如何更改 JComboBox 中的箭头样式

假设我想为JComboBox中的箭头使用自定义图像,我该怎么做?我知道可以使用synthxml文件,或者甚至可以使用UIManager.put(...),但我不知道如何操作。此时我想要做的就是将箭头图像更改为其他内容,以编程方式或什至只是覆盖它使用的图像。我究竟该怎么做? 最佳答案 您可以在BasicComboBoxUI中覆盖createArrowButton().BasicArrowButton是一个方便的起点。classColorArrowUIextendsBasicComboBoxUI{publicstaticComboBox