jjzjj

java - jTabbedPane 将焦点转移到下一张纸

问题描述我目前正在编写一个用于手动将数据从一张纸复制到数据库的应用程序。这个应用程序有很多小部件,用户可以在其中输入数据。为了使UI保持整洁,我决定使用选项卡式Pane,将输入字段分隔成逻辑单元。该应用程序最重要的特性是它应该可以单独通过键盘使用。所以你应该能够通过击键来切换标签。默认情况下,这可以使用CTRL+PgUp/PgDown。但是,作为额外的便利,我想在用户将焦点从当前选项卡上的最后一个小部件移出时立即激活下一个选项卡。因此,如果用户将焦点放在最后一个文本字段上,然后按下选项卡,我想激活下一个选项卡,并将焦点放在其中的第一个小部件上。为了解决这个问题,我将jTabbedPan

Java Swing : how do I properly instantiate GUI and pass domain objects?

我有一个带有嵌套面板的GUI(带有嵌套面板等的选项卡)。我需要将域对象传递给深层嵌套的面板。我可以想到两种方法:在一个地方实例化所有的图形用户界面对象,比如框架类。那会使传递域对象变得非常简单,但是Frame类会庞大且难以维护。每个面板都有自己的类,我们在其中对其进行实例化和布局组件。现在它易于维护,类也很干净,但是如何我如何传递我的域对象链?我不想链传他们通过甚至不应该知道他们的面板的构造函数存在。顶层面板会有大量这样的对象开始。Nietherway似乎是一种解决方案。你通常如何处理这个问题? 最佳答案 当我组合一个JavaSwi

java - 从 Swing 应用程序框架 (JSR 296) 过渡

几年前,JSR296引入了一个在Swing中创建桌面应用程序的框架。NetBeans提供了与引用实现的紧密集成。我喝了Kool-Aid(r)并创建了许多程序,从简单的单面板统计计算器到大型多窗口、多面板数据分析和模拟程序。此后,JSR已基本被放弃,下一版本的NetBeans(7.1)将不再包含对它的支持。我正在寻找有关如何将这组现有应用程序转换为新框架的建议。似乎有几种可能的选择,包括:NetBeansPlatform.我对此有一些经验。虽然它是非常有能力,但对于某些应用程序来说似乎有点矫枉过正。EclipseRichClientPlatform(RCP)。类似的想法NetBeans平

java - 在运行时更改字体

对于整个AWT/SwingGUI,请问是否有另一种方法可以在运行时使用FontUIResource更改字体,而无需了解/感兴趣是否存在局部变量和JComponents类型importjava.awt.*;importjava.awt.event.*;importjava.util.Locale;importjava.util.logging.Level;importjava.util.logging.Logger;importjavax.swing.*;importjavax.swing.plaf.FontUIResource;importjavax.swing.plaf.basic.

java - 如何在基于 Swing 或 NetBeans 平台的 Java GUI 应用程序中更改 WM_CLASS 值?

所有基于Swing/NetBeans的JavaGUI应用程序似乎都具有相同的WM_CLASS值:WM_CLASS(STRING)="sun-awt-X11-XFramePeer","java-lang-Thread"可以通过发出xprop命令并指向窗口来查看此参数。自定义它的实际目的是让类似Mac的停靠栏(例如AWN(以及Ubuntu的Unity))区分应用程序窗口并将它们分组在应用程序的固定启动器图标下。为此,需要在~/.local/share/applications或的.application文件中相应地设置StartupWMClass参数/usr/共享/应用程序。不用说,如果多

java - 在 Java Swing 中打印的单元测试

我有一些使用Swing/AWT打印功能的代码,我想对其进行单元测试。它使用系统native打印对话框,但有没有办法让JVM拦截它并在单元测试期间用模拟替换它,以便我可以获得要打印的图像副本?我的打印代码很简单,大致如下所示:Printableprintable=getPrintable();PrinterJobprintJob=PrinterJob.getPrinterJob();printJob.setPrintable(printable);if(printJob.printDialog()){try{printJob.print();}catch(PrinterException

java - JComponent 不绘制到 JPanel

我有一个扩展JComponent的自定义组件,它覆盖了paintComponent(Graphicsg)方法,但是当我尝试将它添加到我的JPanel时,它不起作用,没有绘制任何东西。这是我的代码:publicclassSimpleComponentextendsJComponent{intx,y,width,height;publicSimpleComponent(intx,inty,intwidth,intheight){this.x=x;this.y=y;}@OverridepublicvoidpaintComponent(Graphicsg){Graphics2Dg2=(Grap

java - 更新图形

我投降。现在尝试了几个星期以找出收到的阻塞串行数据被我的代码的图形部分更新。第一次用Java编程。拥有大约15年的编程经验micros,我习惯于解决自己的问题,但这超出了这种策略是有成效的。我的应用程序包含两个文件。一个文件源于RXTX项目并捕获以多个数据包发送的串行数据每秒两次。这就像一个魅力(花了一些时间),我可以看到捕获的数据是正确的稳定。另一个文件是图形文件,由大约80个菜单组成,最终用户可以在其中读,有时写值。导航是通过鼠标事件完成的到目前为止的按钮和滚动条。这部分也可以正常工作。可以读取、更改和保存值等。我卡住的部分是串行文件的更新值永远不会更新图形屏幕。已尝试遵循数百个示

java - 在 java 中使用 GridBagLayout 时设置最大组件大小

我的问题如下:我正在尝试让JScrollPane随窗口调整大小,水平方向达到一定大小,它应该停止尝试随窗口增长。我可以用GridBagLayout做到这一点吗?如果是,怎么办? 最佳答案 一种方法是将滚动Pane包装在另一个带有BoxLayout的JPanel中,并在BoxLayout将强制执行的滚动Pane上设置MaximumSize:打包:拉伸(stretch)(最大宽度已设置为700像素):importjava.awt.Dimension;importjava.awt.GridBagConstraints;importjava

Java Swing - 在子菜单中选择项目时增加宽大度

尝试单击子菜单中的项目时,很自然地会将鼠标快速滑过其下方的菜单项。Windows和Mac都通过在打开菜单之前设置一个小的延迟来本地处理这个问题。SwingJMenus不处理此问题,鼠标短暂悬停在其上的菜单会在鼠标到达预期的菜单项之前打开。例如,在下图中,如果我尝试选择Item3,但在此过程中我的鼠标短暂地滑过Menu2,Menu1子菜单会在我到达之前消失。有没有人对解决这个问题有任何提示或建议?我的想法是定义一个自定义MenuUI,为其鼠标处理程序添加一个计时器。这里有一些简单的示例代码可以说明我的问题:publicclassThingextendsJFrame{publicThing