如何将图标转换为图像

我正在尝试使用以下代码将Icon( javax.swing.Icon )转换为Image( java.awt.Image ): private Image iconToImage(Icon icon) { if(icon instanceof ImageIcon) { return ((ImageIcon) icon).getImage(); } else { BufferedImage image = new BufferedImage(icon.getIconWidth(), icon.getIconHeight(), BufferedImage.TYPE_INT_RGB); icon.paintIcon(null, image.getGraphics(), 0, 0); return image; } } 问题是, paintIcon函数会在image.getGraphics()上抛出NullPointerException 。 对于记录, icon值是默认的CheckBox图标(通过UIManager.getIcon(“CheckBox.icon”) ) 以下是抛出exception的详细信息: Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException at com.sun.java.swing.plaf.windows.WindowsIconFactory$CheckBoxIcon.paintIcon(WindowsIconFactory.java:306) at utils.WarningRenderer.iconToImage(WarningRenderer.java:50) at utils.WarningRenderer.(WarningRenderer.java:38) at deliveryexpress.DeliveryExpressView.setWarnings(DeliveryExpressView.java:278) […]

如何以编程方式生成按键事件?

java程序应该做的是它应该在某些条件下触发键盘按下而无需人按键盘键。 因此,任何需要键盘输入的窗口和焦点运行的程序都可以在没有人实际按下键盘的情况下获得输入。 我在这里找到了这些相关问题: 问题1 , 问题2 我想知道在Java中是否有任何方法可以做到这一点。

为什么printStackTrace()和其他方法之间的执行顺序似乎是不确定的?

在下面的代码片段中,在catch block调用printStackTrace()方法。 运行程序后,您可以看到有时printStackTrace()连续运行多次,而不是按printStackTrace() – > catch block – > finally block的顺序运行。 如果将static boolean b更改为false则System.out.print(e)按顺序执行。 那么为什么printStackTrace()以不同的方式运行? (有线程的东西?) public class PrintStackTrace { static boolean b = true; public static void main(String[] args){ for(int i = 0; i < 100; i++){ try{ throw new Exception("[" + i + "]"); } catch(Exception e){ if(b){ e.printStackTrace(); } else{ System.out.print(e); } […]

如何在JTable单元格中显示动画

我正在寻找一种在表格单元格中显示动画进度指示器(动画GIF,通过Java2D等呈现的旋转轮,此处没有首选项)的方法,直到计算或检索到最终显示的值。 到目前为止,我刚刚将一个静态的“待处理…”文本放入每个尚未准备加速显示的单元格中。 当数据从后台线程到达时,我将其放入适当的单元格并在表格上调用重绘。 使用静态标签或图像,这可以正常工作,但因为单元格渲染仅将其用作橡皮图章的一种,并且不会为每个单元格创建单独的实例(这当然是性能上的好主意),例如动画GIF不是在单个细胞中“玩”。 我怎样才能达到这样的效果? 与仅仅是一个简单的文本相比,它将形成一个更“精致”的UI。

遍历NodeList时删除DOM节点

我即将删除XML文档中的某些元素,使用如下代码: NodeList nodes = …; for (int i = 0; i < nodes.getLength(); i++) { Element e = (Element)nodes.item(i); if (certain criteria involving Element e) { e.getParentNode().removeChild(e); } } 这会干扰NodeList的正确遍历吗? 用这种方法还有其他注意事项吗? 如果这是完全错误的,那么正确的做法是什么?

如何在Spring Boot中禁用ErrorPageFilter?

我正在创建一个应该在Tomcat上运行的SOAP服务。 我正在为我的应用程序使用Spring Boot,类似于: @Configuration @EnableAutoConfiguration(exclude = ErrorMvcAutoConfiguration.class) public class AppConfig { } 我的网络服务(例子): @Component @WebService public class MyWebservice { @WebMethod @WebResult public String test() { throw new MyException(); } } @WebFault public class MyException extends Exception { } 问题: 每当我在webservice类中抛出exception时,服务器上都会记录以下消息: ErrorPageFilter:无法转发请求[/ services / MyWebservice]的错误页面,因为响应已经提交。 因此,响应可能具有错误的状态代码。 如果您的应用程序在WebSphere Application Server上运行,则可以通过将com.ibm.ws.webcontainer.invokeFlushAfterService设置为false来解决此问题 题: 我怎么能阻止这个?

如何在Tomcat中使用Hibernate支持的JPA运行Spring 3.0 PetClinic

好吧,这可能应该是世界上最简单的事情,但我一整天都在努力,而且它仍然无法工作..任何帮助都非常感谢! 编辑: 有关正确的程序,请参阅Pascal的答案。 我的错(因为我没有禁用LoadTimeWeaving)程序留待参考..: 我做了什么: 下载了Tomcat 6.0.26和Spring 3.0.1 从https://src.springframework.org/svn/spring-samples/petclinic下载了PetClinic 建立并部署了petclinic.war。 使用默认的JDBC持久性很好。 编辑了webapps / WEB-INF / spring / applicationContext-jpa.xml并将jpaVendorAdaptor设置为Hibernate。 编辑了webapps / WEB-INF / web.xml,并将context-param从applicationContext-jdbc.xml更改为applicationContext-jpa.xml 将Spring 3.0.1发行版中的所有内容复制到TOMCAT_HOME / lib。 推出了tomcat。 锯 引起:java.lang.IllegalStateException:ClassLoader [org.apache.catalina.loader.WebappClassLoader]不提供’addTransformer(ClassFileTransformer)’方法。 指定自定义LoadTimeWeaver或使用Spring的代理启动Java虚拟机:-javaagent:spring-agent.jar webapps / META-INF / context.xml中未注释的行 。 同样的错误。 将该行添加到TOMCAT_HOME / context.xml 部署没有错误。 但是,当我做某事时会发出错误说 java.lang.NoClassDefFoundError: javax/transaction/SystemException at org.hibernate.ejb.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:39) 11.根据scaffman的建议,将javax.transaction的范围从测试更改为默认(刚删除的测试)。 12.Run很好!! 谢谢!

Java中File.exists()的替代方案

我从未想过它会发生在我身上,但我遇到了我在Java中的第一个错误: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5003595 我几乎和bug中描述的情况一样(在Linux上的NFS),我发现File.exists()没有返回正确的值(至少不是马上)。 所以我的问题是,有没有替代这种检查文件是否存在的方法? 如果可能的话,我宁愿保持操作系统不可知。 编辑:我找到了一个解决方法。 如果你调用’ls $ filedir’,NFS会刷新任何给Java带来麻烦的缓存/元数据,而File.exists()会返回正确的值。 当然,这并不完全理想,因为它会损害可移植性,但有办法解决这个问题。 谢谢,-Ben

通过使用java代码传递URL来下载文件

我正在尝试在java中编写一个代码,用户提供一个url链接,程序采用url链接并按原样下载一个网页并保存在特定位置…同样可以在网页上保存为…选项。 请任何人帮助我 提前致谢

Java JTable – 只能编辑一列

我想知道如何使JTable的一列可编辑,其他列必须是不可编辑的。 我已经覆盖了isCellEditable()但是这会将每个单元格更改为不可编辑。 Thnx提前。