草庐IT

swing-fx-interoperability

全部标签

java - 如何在 Swing 中停止重复的 keyPressed()/keyReleased() 事件

所以我遇到的问题似乎是一个只发生在Linux上的错误。我试图在按下某个键时记录我的Swing应用程序,然后检测该键何时被释放。现在这不应该成为问题,因为KeyListener应该为我处理这个。问题是,当我按住按键时,我会收到很多重复的keyPressed()/keyReleased()事件,而不仅仅是单个keypressed()。有没有人有解决方案或变通方法来了解何时真正在Linux上发布key?谢谢。 最佳答案 SotheproblemthatIamhavingappearstobeabugthatoccursonlyonLinu

java - 我应该担心在 Swing 中泄漏 "this"指针吗?

我最近了解到(在基于C#的类中)有时认为在对象的构造函数中注册事件监听器是危险的,因为在对象完全初始化之前,这些事件监听器会获得对该对象的引用,并且可以(在至少在理论上)尝试在构造完成之前访问对象。据我了解,在构造完成之前访问对象可能会导致崩溃,至少在某些语言中是这样......如果它不会导致崩溃,那么我们只关心注册最后发生,所以我们的当我们注册它的监听器时,对象就准备好接收事件了。我现在开始使用新的SwingGUI,并注意到我在构建SwingGUI时的标准做法是在构造函数中连接事件监听器。似乎不太可能在构造函数完成之前调用Swing组件的事件监听器,因为它们可能在组件被添加到可见的S

java - Swing:创建一个可拖动的组件...?

我在网上搜索了可拖动Swing组件的示例,但我发现了不完整或无效的示例。我需要的是一个可以被鼠标拖动的Swing组件在另一个组件内。在被拖动时,它应该已经改变它的位置,而不仅仅是“跳”到它的目的地。我希望能在没有非标准API的情况下工作的示例。谢谢。 最佳答案 我提出了一个简单但运行良好的解决方案,我自己发现了;)我该怎么办?按下鼠标时,我记录光标的位置在屏幕上,然后组件的位置。当鼠标被拖动时,我计算new和旧的光标位置在屏幕上,然后移动组件通过这种差异。在Linux(OpenSuse,KDE3)下使用最新的JDK6进行测试,但是,

java - 哪些 Swing 组件方法是线程安全的?

根据Swingtutorial:SomeSwingcomponentmethodsarelabelled"threadsafe"intheAPIspecification;thesecanbesafelyinvokedfromanythread.AllotherSwingcomponentmethodsmustbeinvokedfromtheeventdispatchthread.Programsthatignorethisrulemayfunctioncorrectlymostofthetime,butaresubjecttounpredictableerrorsthataredif

Java Swing 设置 "actual"帧大小(内部)

我有一个只包含一个JPanel的JFrame。我已经尝试设置面板的大小并打包框架,但没有效果。如果我设置JFrame的大小,它将改变大小,使其包含标题栏和边框。如何设置“实际大小”使其不包括标题栏和边框?例子:提前谢谢各位 最佳答案 您可以设置contentPane的preferredSize并在JFrame上调用pack,但通常最好让组件根据其布局管理器确定的首选尺寸自行调整尺寸。 关于JavaSwing设置"actual"帧大小(内部),我们在StackOverflow上找到一个类似

Java/Swing GUI 最佳实践(从代码的角度来看)

已结束。这个问题是off-topic.它目前不接受答案。想要改进这个问题?Updatethequestion所以它是on-topic堆栈溢出。关闭11年前。Improvethisquestion作为对比thiswiki,我正在寻找从编码角度实现SwingGUI控件的正确方法。我一直在努力学习Java及其GUI工具,但我发现一个又一个的互联网教程将所有内容都放在main中,我知道这是不对的。我也尝试过像Netbeans和其他“可视”编辑器这样的RAD系统,但是当我开始编码时,我已经有一大堆代码,我不知道它的作用有一半,所以我打算学习手代码Swing,我知道基本的控件和布局,但想以正确的方

java - Swing 组件和序列化

为什么SwingJComponent类实现Serializable接口(interface)?我实现View的方式是无状态的,所有状态数据都存储在PresentationModel中。所以我不需要序列化我的观点。我使用了@SuppressWarnings("serial")注释来删除警告。有没有更好的方法来移除它们? 最佳答案 一开始,GUI构建器会以序列化格式保存UI。applet标记甚至有一个从序列化表单加载的属性(我不知道有其他人使用过它,我只是将它用作恶意)。不幸的是,使用GUI的序列化机制并没有真正起作用。Swing只保证

java - 如何在 Java Swing 中创建投影、内发光和外发光?

我正在使用Graphics2D界面生成一些图像,并且偶尔我希望能够在图像上绘制一些文本并对其应用Adob​​ePhotoshop中的效果。现在要在文本上生成“阴影”,我正在绘制文本两次,一次是原始颜色,一次是黑色,带有轻微的(1px)x&y偏移。不幸的是,这过于简单,因为我需要更多地控制阴影(不透明度、大小、散布)。至于内发光和外发光,我不确定从哪里开始;mask/渐变绘制/Alpha混合?是否有用于产生这些类型效果的Java库?如果不是,您将如何创建这些效果? 最佳答案 我强烈推荐这本书FilthyRichClients.第16章

java - 如何在 Swing 中创建通知

使用Java和Swing,是否有任何(方便的)方法来创建通知?通过通知,我的意思是:,(来源:maketecheasier.com),或者(来源:microsoft.com)(有更正确的说法吗?)。如果它可以跨平台工作会很好,但我主要关心的是它在带有Gnome的Ubuntu下工作。如果可能的话,我想避免在系统托盘/通知区域中有一个图标。如果一切都失败了,我总是可以使用来自SlidingNotificationbarinjava(alaFirefox)的滑动通知 最佳答案 您可能需要translucentframe没有装饰。快速演示O

java - Swing:设置JFrame内容区域大小

我正在尝试制作一个可用内容区域正好为500x500的JFrame。如果我这样做......publicMyFrame(){super("Hello,world!");setSize(500,500);}...我得到一个全尺寸为500x500的窗口,包括标题栏等,我真的需要一个大小为504x520的窗口来说明窗口边框和标题栏。我怎样才能做到这一点? 最佳答案 您可以尝试以下方法:1-一个黑客:publicMyFrame(){JFrametemp=newJFrame;temp.pack();Insetsinsets=temp.getIn