我开发了一个桌面Swing应用程序,我正在考虑提供自动更新功能的最佳方式。我知道JavaWebStart提供了这个,但我认为它不适合我的需要,因为我需要读取本地文件,所以我需要签署jar。此外,JWS需要额外的工作才能在服务器中部署,而现在我只需要上传.jar。我一直在考虑这种方法:第一个JAR(永远不需要更新)加载启动画面,检查config.xml中的当前版本并将其与服务器config.xml进行比较。如果服务器版本较新,询问用户是否要更新。在这种情况下,下载新的“main.jar”、新的“config.xml”和新的启动画面/图标,检查MD5SUM,并将旧文件替换为新文件。启动“m
我在我的SwingJToolBar上创建了一个下拉菜单。但它并没有按照我想要的方式创造行为。我的目标是让它像Firefox的“智能书签”按钮一样工作。当用户选择菜单项时它会消失:正确!当用户按下ESC时它会消失:正确!当用户点击菜单外主框架中的某处时,它会消失:正确!但是当用户第二次点击显示下拉菜单的按钮时它并没有消失:不正确...:-(我的问题是如何添加这种行为,当第二次点击显示菜单的按钮时它会消失。这是我当前的代码,来自Mac上的Java6:importjavax.swing.*;importjavax.swing.event.PopupMenuEvent;importjavax.
我的Java应用程序有多个框架。其中一些设置为始终位于最前面。但是,当用户打开另一个程序(比方说网络浏览器)时,我希望始终在最前面的框架移动到背景,让其他应用程序完全显示在屏幕上。 最佳答案 创建您自己的窗口管理器。创建一个实现WindowListener、WindowStateListener和WindowFocusListener的自定义窗口管理器。向此管理器注册所有新框架,并使用它在用户与框架交互时将始终位于顶部的框架带回前台。听起来您的应用程序正在使用一些非常自定义的框架管理代码。我的猜测是,随着您继续开发应用程序,此窗口管
我已经使用WindowsLookAndFeel使用JProgressBar工作了一段时间,但我发现了一些与原生进度条的主要区别:这是正常状态下的原生栏:虽然这是Java的:眼尖的人可能会发现Java的顶部白色更亮,绿色也更亮一点。此外,native是“填充的”,而Java的边框是空的。现在,原生不确定:Java的:闪烁要短得多,也快得多(未显示)。此外,由于native看起来像一团辉光,Java看起来很像一颗“cometd”(有尾部,只是从一侧看...)。我的最后一个问题,阻塞栏:这可以用Java完成吗? 最佳答案 这只是最后一个问
我已将Swing应用程序迁移到Java8,最近我们看到以下NPE异常。java.lang.NullPointerExceptionatjava.awt.EventQueue.getCurrentEventImpl(EventQueue.java:848)atjava.awt.EventQueue.getCurrentEvent(EventQueue.java:842)atjava.awt.Component.requestFocusHelper(Component.java:7628)atjava.awt.Component.requestFocusHelper(Component.j
原帖我想以编程方式确定在当前窗口中从一个Swing组件(拥有焦点)转到另一个Swing组件需要多少次键盘敲击(无论是否使用Tab键和/或箭头键都无关紧要)。每笔画应该增加1的距离;如果无法访问该组件,则结果应为-1。由于找不到实用方法,我想到了以下签名:publicstaticintgetFocusTraversalDistance(Componentfrom,Componentto)天真地,我会从通过getFocusCycleRootAncestor()获取from的Container开始。.之后,我将使用getFocusTraversalPolicy()获取FocusTravers
在FoodTab中,我想实现这个但我只能得到这个如何增加FoodTab中JTextField的宽度?下面是我的代码publicclassFoodOrdering{staticprivateJFrameframe;staticprivateJTextFieldtextField;staticprivateGridBagConstraintsgbc;staticprivateJLabel[]foodLabel;staticprivateJLabel[]labels;staticprivateJTextField[]qtyField;staticprivateJLabel[]foodImag
我有一个JComboBox,我想每秒从数据库中检索一组字符串并将这些字符串设置为JComboBox的内容,并将其中一个设置为当前选定的值。但我也希望用户能够编辑JComboBox并将值添加到数据库并将其设置为当前值。我希望能够检测到字符何时输入到JComboBox中,因此我可以重置倒计时,只要它不为零,它就会阻止更新JComboBox。我的第一直觉是使用KeyListener,但是关于组合框的Java教程是这样说的,AlthoughJComboBoxinheritsmethodstoregisterlistenersforlow-levelevents—focus,key,andmou
我真正需要的是能够在接口(interface)中声明常规变量并在两个类中实现该接口(interface),这样我就不必在每个类中重新声明这些变量(即class.data.variables而不是class.变量)。有什么方法可以让我以不同的方式实现相同的目标?提供更多细节。本质上,我创建了一个小型绘图程序,它将JLabel放在JScrollPane上的JPanel上。因为我有这些JLabel的特定设计(即它们不只是用于绘图,它们代表此应用程序的航空公司对象),所以我有一个扩展JLabel并向其添加我的应用程序特定变量的类。最后,我用这些变量读写一个XML文件,这样他们就可以加载和保存他
Thisquestionhasbeenaskedbefore,但答案并没有解决问题,所以我再问一次。有人建议您可以使用g2.draw(line)而不是使用g2.drawLine,其中line是Line2D.Double。但是,正如您从屏幕截图中看到的那样,线条仍然绘制得好像它们以整数像素结束(每组10条线完全平行)。importjavax.swing.*;importjava.awt.*;importjava.awt.geom.Line2D;publicclassFrameTestBaseextendsJFrame{publicstaticvoidmain(Stringargs[]){