swing-fx-interoperability
全部标签 我最近在尝试在Swing中实现模型-View-Controller时遇到了一个问题。我有一个由子面板组成的GUI类,这些子面板由其他子面板组成。现在,在其中一个子子面板中有一个JButton。在这个JButton的ActionListener中,我想在Controller中调用一个方法。为此,我需要将Controller深入到GUI的内部,传递到JButton所在的子子面板。然后在这个子子面板中,我需要将ActionListener附加到JButton并通过调用以下方法填写actionPerformed()我想调用Controller。我相信你们都看到了这个问题。有什么好的方法可以避免
我有:classCustomerActionListenerimplementsActionListener{@OverridepublicvoidactionPerformed(ActionEventevent){JComboBoxcb=(JComboBox)event.getSource();..dosomething}}这导致在jdk7中出现以下编译器警告:JComboBox是原始类型。对泛型JComboBox的引用应该被参数化我试图将其参数化为:JComboBoxcb=(JComboBox)event.getSource();但这仍然会留下以下编译器警告:类型安全:未经检查的从
JTextPanetext;text.setText("somewordsotherwords");给我这个,这是预期的。但是当我突出显示它并复制粘贴它时,我得到“somewordsotherwords”。复制时在Firefox中完成的相同操作将粘贴“somewords[fire3]otherwords”(它用替代文本代替图像)。有什么方法可以在复制替代文本或复制图片的任何其他迹象时复制这种行为?我猜它不是内置功能,所以我可能需要知道应该重载什么来模仿这种行为。它用于输出/聊天窗口,所以当用户引用它时它包含图像(就像表情一样)很重要更新:成功覆盖了copyAction方法...现在怎么
在.net中有一个称为锚定的控件,用于随表单动态调整控件的大小。当控件锚定到窗体并调整窗体大小时,控件会保持控件与anchor位置之间的距离。我的问题是,Java中是否有任何控件具有与.net中的锚定功能相同的功能。作为一个例子,我选择了一个文本字段并将其放在面板上并适本地调整了它的大小。现在,当我更改窗口(JFrame)的大小时或最大化窗口时,文本字段将不会保持与以前相同的距离。我一直在使用netbeans,但我没有在托盘管理器中找到任何可以回答我问题的属性。请用示例或一些链接向我解释。 最佳答案 JavaSwing使用布局管理器
我一直在尝试将System.outPrintStream重定向到JTextPane。这工作正常,除了特殊语言环境字符的编码。我找到了很多关于它的文档(参见mindprodencodingpage),但我仍在与它作斗争。StackOverFlow中发布了类似的问题,但据我所知,编码并未得到解决。第一种解决方案:StringsUtf=newString(s.getBytes("cp1252"),"UTF-8");第二种解决方案应该使用java.nio。我不明白如何使用字符集。CharsetdefaultCharset=Charset.defaultCharset();byte[]b=s.g
当涉及到用户界面时,我似乎总是在内心挣扎。我建立了一个应用程序“引擎”,并倾向于将用户界面推迟到我的算法工作之后。然后我反复尝试决定如何让用户与我的程序交互。就个人而言,我是命令行的粉丝,但我不能指望我的用户普遍如此。在web2.0和ajax时代,我真的很喜欢浏览器的无限可能。另一方面,制作一个Swing前端也不难,而且您通常可以指望向用户呈现更一致的表现(尽管使用像YUI或jQuery这样的良好javascript框架对规范化浏览器大有帮助)。显然,这两种方法都有其优点和缺点。那么,什么标准/参数/情况应该让我使用轻量级(例如基于网络的)GUI?什么标准/参数/情况应该导致我使用更重
是否有一种特定的方法可以改变swing应用程序的外观,而无需在每次用户更改LAF时都重新启动应用程序?我正在寻找一种解决方案,其中可以从配置对话框中选择LAF,它会在应用时直接更改,而不必退回到告诉用户重新启动应用程序。目前我记得在属性文件中选择的LAF,并在启动时在任何窗口打开之前设置它。 最佳答案 来自Javatutorial:您首先需要通过调用UIManager.setLookAndFeel来设置新外观:UIManager.setLookAndFeel(lnfName);然后,为了使现有组件反射(reflect)新的外观和感觉
正如大多数Java程序员所知,对SwingGUI的更新应该只在AWT事件调度线程上完成,建议长时间运行的进程在“工作”线程上执行,更新发送到事件调度线程使用SwingUtilities.invokeAndWait()或SwingUtilities.invokeLater()。当长时间运行的进程完成时,您如何阻止用户继续使用应用程序?您是否将控件灰显,然后让工作线程使用上面提到的SwingUtilities调用重新启用它们?是否有更好的替代模式? 最佳答案 我会考虑3种解决方案:禁用面板的组件:这通常是我所做的。不幸的是,Swing没
最简单地说,我试图使用组件的宽度来设置其父容器的大小。但是,为组件返回的宽度偏移了大约4个像素。更多详情:我有一个对话框,其中的子面板在中间水平分布。对话框应始终与此子面板列表一样宽,并在列表太长时使用滚动条。我只是尝试使用1个子面板来开始。无论我做什么,返回的子面板的大小总是错误大约4个像素。我可以看到子面板右侧有一个非常烦人的4像素间隙,使我的对话框看起来很可怕。随着更多子面板的添加,效果显然会更加复杂。我尝试使用什么来获取宽度:sup-panel.getSize().width;sub-panel.getBounds().width;sub-panel.getWidth();su
我正在构建我的第一个Swing应用程序,并试图弄清楚我的JDialogs(当用户选择JMenuItem时专门调用)如何更新JFrame的主客户区中的组件,该主客户区是整个应用程序。这是我想出的设计,但不知道它是否:(1)很糟糕,(2)不是标准(因此最好)的方式,或者(3)如果我完全在这里偏离基地。非常感谢任何建议。基本上,用户选择一个JMenuItem,它启动一个JDialog。用户与对话框上的组件交互,然后单击“完成”。如果一切都通过验证,JDialog将关闭,我希望父窗口(一个JFrame)更新其状态(并最终波及到其组件)。我的设计:有一个作为JFrame子类(我的应用程序)成员的