- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想将 java.awt.Panel
添加到我的 JavaFX8 应用程序中。不幸的是,当附加到 SwingNode
时,面板似乎不会被渲染。
我有一个简单的测试应用程序:
import java.awt.Dimension;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
import java.util.logging.Level;
import java.util.logging.Logger;
import javafx.application.Application;
import javafx.embed.swing.SwingNode;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.stage.Stage;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class AWTInJFX extends Application {
@Override
public void start(Stage stage) {
final AwtInitializerTask awtInitializerTask = new AwtInitializerTask(() -> {
AWTPanel panel = new AWTPanel();
return panel;
});
SwingNode swingNode = new SwingNode();
SwingUtilities.invokeLater(awtInitializerTask);
try {
swingNode.setContent(awtInitializerTask.get());
} catch (InterruptedException | ExecutionException ex) {
Logger.getLogger(AWTInJFX.class.getName()).log(Level.SEVERE, null, ex);
}
stage.setScene(new Scene(new Group(swingNode), 600, 600));
stage.setResizable(false);
stage.show();
SwingUtilities.invokeLater(() -> {
JFrame frame = new JFrame();
frame.setSize(new Dimension(600, 400));
frame.add(new AWTPanel());
frame.setVisible(true);
});
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
launch(args);
}
private class AwtInitializerTask extends FutureTask<JPanel> {
public AwtInitializerTask(Callable<JPanel> callable) {
super(callable);
}
}
}
我的 JPanel 包含 java.awt.Panel
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Panel;
import javax.swing.JPanel;
public class AWTPanel extends JPanel{
public AWTPanel()
{
Dimension d = new Dimension(600, 400);
setPreferredSize(d);
Panel p = new Panel();
p.setSize(d);
p.setPreferredSize(d);
p.setBackground(Color.red);
this.add(p);
this.setBackground(Color.green);
}
}
当我将 AWTPanel 添加到 SwingNode 时,其他 AWT 组件也不会显示。
有人可以解释一下为什么这不起作用吗?
我需要一个 AWT 面板来获取在附加 C++ 库中使用的 hWnd。
最佳答案
来自 SwingNode
Javadocs :
The hierarchy of components contained in the JComponent instance should not contain any heavyweight components, otherwise SwingNode may fail to paint it.
据我所知,没有办法在JavaFX中嵌入重量级组件,例如AWT组件。
根据您的要求,您可以考虑扭转局面,以便将 Swing/AWT 框架作为主窗口,并将应用程序的 JavaFX 部分嵌入 JFXPanel
中。 .
关于java - AWT 面板未在 JFX 中渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29390902/
我正在使用 Jfoenix,有一件事困扰着我。只要我没有按下 JFX ComboBox,提示文本就会显示在 JFX ComboBox 中。是否可以将其直接放在组合框上方,就像单击该框后一样? 未单击
我正在尝试拥有一个与其父级一起缩放的 ImageView。我搜索了所有我能找到的 StackOverflow 帖子,这是我尝试过的: taggedImage.setPreserveRa
我目前正在尝试使用带有 predicate 的 FilteredList 来过滤我的 TableView 中的数据。我有 2 个 ComboBoxes 来过滤值。 我的表包含结果。每个 Result
我尝试了很多方法来删除我的 JFX 元素框架中的舞台按钮。我正在使用装饰器来更新设计。 我只想删除最大化、调整大小和最小化按钮。不应删除关闭按钮。你能给我一个提示,我该如何处理这个问题? JFXDec
我已经在我的元素中初始化了一个装饰器,它一开始看起来很漂亮。但是现在我遇到了几个问题,我没有弄清楚如何更改边框颜色(目前是黑色)。我还想删除调整窗口大小的按钮。 这是涉及装饰器的代码: public
那么有什么方法可以去除选项卡后面的灰色区域: 我试过用 CSS 做到这一点,但没有找到方法。 最佳答案 要在 CSS 文件中设置标签页标题的背景颜色: .tab-pane .tab-header-ar
我有一个使用 java 1.6 编译并使用 jnlp/webstart 运行的现有应用程序。如果我使用 JRE 1.6 从客户端运行此应用程序,一切都会很好。但是,当我使用 java JDK 7 编译
我想将 java.awt.Panel 添加到我的 JavaFX8 应用程序中。不幸的是,当附加到 SwingNode 时,面板似乎不会被渲染。 我有一个简单的测试应用程序: import java.a
这是我的代码。编译时,网格 Pane 中仅显示按钮和标签,但图像不会显示。我将图像放入资源文件中,认为这可以解决问题,但仍然不会显示。 公共(public)类Main扩展应用程序{ @Override
我正在开发一个依赖于 JFX 实例运行的单元测试,但是当 Bitbucket 执行测试时,它在初始化 JFXPanel 时失败。 这是我的位桶管道: pipelines: default:
我在 VBox 中添加了一个 Label,它被 Scrollpane 进一步包装。这样做时,我的 Label 样式不起作用。 我这里有密码。当我删除滚动 Pane 时它工作正常。 package ja
我有一个 JPanel 组件,其中包含一个带有嵌入 YouTube 视频的浏览器的 JFXPanel。我使用的是 YouTube 中的视频嵌入网址(即 https://www.youtube.com/
我想为 Open Java FX 8 实现 MultipleSelectionModel ComboBox,其中包括 ControlFX CheckComboBox 的所有功能(如 this post
美好的一天,我正在尝试在 ubuntu 虚拟机上运行一个名为 graphdb-native-app-8.8.1-jfx.jar 的程序。我安装了最新版本的 java,并确保 JAVA_HOME 设置为
我和我的团队有一个 maven 项目,使用 jdk1.8(未打开 jdk)和 javaFX 作为我们的 UI。它运行良好,但仍有很多工作要做,我们希望使用 Bitbucket 的管道来进行持续集成。
本文整理了Java中com.nexitia.emaginplatform.jfx.core.engine.components.listform.YesNoListFormCellPresenter类
我正在尝试使用 JavaFX 和 Maven 构建一个可执行文件。 'clean javafx:run' 工作正常,但是当我运行 'mvn clean jfx:jar'(在 eclipse 或 c
我对 121 之后的 Java 更新感到很兴奋。但是每个后续版本都使 Java FX Web View 变得越来越差,并且越来越难以维护与最新版本一致的 web kit 基本功能的网络工具包。 一个示
我们正在尝试 JavaFX 的多点触控功能,但似乎效果不佳。 在细节上,我们试图在 javafx.scene.layout.Pane 中拦截事件: onSwipeDown 向左滑动 向右滑动 onSw
我正在开发一个 JavaFX 应用程序,我希望它能自动更新。我正在使用 JavaFX Maven Plugin并为每个操作系统构建本地包(JavaFX Maven 插件使用 javapackager)
我是一名优秀的程序员,十分优秀!