- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
JavaFx 的 SwingNode 显示它在 Java 1.8.0_102-b14 中包含的组件时遇到问题。我不确定这个问题是由于我的 Java 版本太旧,当前(如果我的是当前)Java 版本中的错误,还是我做错了某些 SwingNode 进程。我知道这个问题之前已经被报告过 JavaFX and SwingNode - partial black Window所以我真的在寻找有关我的 Java 版本的反馈。
这段代码通常会错误地显示“button1”,如黑色或背景色,直到鼠标悬停在它上面或被点击。这对我来说不是一个理想的解决方法,因为我的项目在 Fx 项目中使用了更复杂的 Swing 面板,不幸的是,纯 Fx 不是一个选项。
import javafx.application.Application;
import javafx.embed.swing.SwingNode;
import javafx.scene.Scene;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;
import javax.swing.JButton;
public class Test extends Application {
@Override
public void start(Stage stage) {
final SwingNode swingNode1 = new SwingNode();
final SwingNode swingNode2 = new SwingNode();
swingNode2.setContent(new JButton("Click me!"+2));
swingNode1.setContent(new JButton("Click me!"+1));
BorderPane pane = new BorderPane();
pane.setLeft(swingNode1);
pane.setRight(swingNode2);
stage.setScene(new Scene(pane, 200, 50));
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
在创建此 sssce 时,我发现在设置右侧 SwingNode 中的内容之前先设置左侧 SwingNode 中的内容可以更正此简单代码的问题,但不适用于我的大型项目。所以我猜这是内存泄漏,但我无法从我的机器上判断出来。
有人可以测试这段代码,看看他们是否会得到类似的结果吗?
编辑:感谢您的快速反馈,请不要关注按钮,因为它们只是演示我的问题的工具。奇怪的功能以与其他对象而不是按钮相同的方式起作用。
最佳答案
您必须在 AWT 事件调度线程上创建和显示 Swing 组件(参见 Swing's threading policy)。 Application.start()
方法是 invoked on the FX Application Thread .
因此你需要
public class Test extends Application {
@Override
public void start(Stage stage) {
final SwingNode swingNode1 = new SwingNode();
final SwingNode swingNode2 = new SwingNode();
SwingUtilities.invokeLater(() -> {
swingNode2.setContent(new JButton("Click me!"+2));
swingNode1.setContent(new JButton("Click me!"+1));
});
BorderPane pane = new BorderPane();
pane.setLeft(swingNode1);
pane.setRight(swingNode2);
stage.setScene(new Scene(pane, 200, 50));
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
关于JavaFx SwingNode - 随机显示黑色、背景或组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39003599/
编辑:我在下面留下了我原来的问题。如果您希望使用 AnchorFX 源代码和我下面的代码测试问题,您应该能够重现问题。在其他一些情况下也会发生,并且类似于以下两个问题中的问题:Resize Swing
当启动 JavaFX 应用程序(嵌入了 Swing 代码)作为 Webstart 时,会发生以下错误: java.lang.ExceptionInInitializerError at com
我正在尝试将 Swing 内容嵌入到更大的 JavaFX 应用程序中,但是我无法让嵌入的 JPanel 具有透明背景。 JPanel 仅绘制其部分区域。我希望绿色“显示出来”,即删除下图中的浅灰色背景
我有一个 JavaFX 应用程序,它通过 SwingNode 显示 Swing 图。由于 swing 组件的编写方式以及我不愿意重构它,每次用户需要更新数据时,我都会创建一个新的 swing plot
我用 JavaFx 编写了一个简单的应用程序,想在其中使用 swingNode,所以我在更改节点的大小或位置时遇到问题 public class SwingFx extends Application
假设我已经这样做了 - SwingNode deviceView = new SwingNode(); JDesktopPane desktop = new JDesktopPane(); // Ad
JavaFx 的 SwingNode 显示它在 Java 1.8.0_102-b14 中包含的组件时遇到问题。我不确定这个问题是由于我的 Java 版本太旧,当前(如果我的是当前)Java 版本中的错
当我在面板(JFXPanel 中的 GridPane)中有多个 SwingNode 时,我注意到性能极度下降。如果只有一个 SwingNode,这似乎不会发生。 我意识到混合使用 Swing 和 Ja
我一直在使用这段代码尝试 JavaFX8 中的 SwingNode。问题是当窗口出现时我无法单击按钮,直到我调整了窗口大小。移动它不起作用。我需要最大化它或用鼠标调整它的大小以使按钮响应。 我意识到这
我用 javaFx 编写了一个应用程序,想将 JButton 添加到 SwingNode 中的 Pane 中这是我的 fxml Controller public class Controller i
问题:我有需要使用 JavaFX 舞台显示的 Swing 内容。 Swing 内容需要包装在 ScrollPane 中,以便在调整舞台大小时保持正常的 Swing 大小。 预期行为:首次显示舞台时,需
我已使用 SwingNode 将 JFileChooser 集成到 JavaFX 应用程序中。该对话框显示并且可用,但我不确定如何从中获取所选文件。 感谢您的帮助。 @FXML public void
我一直在尝试使用 import javafx.embed.swing.SwingNode 因为我想在我的项目中使用 SwingNode,但是出现了错误“无法解析”。 我的库中有一个JavaFX SDK
SwingNode 在使用 Spring Boot、OpenJFX 和 Maven 的应用程序中导致链接错误 我通读了有关此问题的帖子,尝试按照他们的建议进行操作(请参阅下面的代码),但无法解决我的问
我对使用 JavaFX 还很陌生,我希望将 JPanel 添加到 JavaFX Pane 中。我目前拥有的代码可以工作,但是面板非常小。我希望能够调整它的大小,使其适合 JavaFX Pane 。 代
概述 在 JavaFX 应用程序中使用 FlyingSaucer,出于各种原因避免使用 WebView: 不提供对其滚动条的直接 API 访问以实现同步行为; 捆绑 JavaScript,这对我的用例
FXMLController初始化方法: @FXML private VBox vbContainer; MediaPlayerVLC m_mediaPlayer; public void initi
我正在构建一个 Java FX 音乐应用程序,我有一个 Java FX Pane ,其中包含一个包含 JComponent 的 SwingNode,我希望能够隐藏该组件的顶部和底部,只显示中间部分。
我有以下代码: private void launchSingleRecordWindow() { SwingNode swingNode = new SwingNode(); Mai
如何在 JavaFX8 中调整 SwingNode 中的 Swing 控件的大小? 有时,我在 SwingNode 中调整了控件的大小。但是 SwingNode 似乎反对这一点。 据说在resize(
我是一名优秀的程序员,十分优秀!