- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我用 javaFx 编写了一个应用程序,想将 JButton 添加到 SwingNode 中的 Pane 中这是我的 fxml Controller
public class Controller implements Initializable {
@FXML
private Pane pane;
private static final SwingNode swingNode = new SwingNode();
@Override
public void initialize(URL location, ResourceBundle resources) {
createSwingContent(swingNode);
pane.getChildren().add(swingNode);
}
@FXML
private void handleButtonAction(ActionEvent event) {
}
private void createSwingContent(final SwingNode swingNode) {
SwingUtilities.invokeLater(() -> {
JButton jButton = new JButton("Click me!");
jButton.setBounds(0,0,80,50);
JPanel panel = new JPanel();
panel.setLayout(null);
panel.add(jButton);
swingNode.setContent(panel);
});
}
}
但是它不起作用,那么它有什么问题呢?顺便说一句,当我向 Pane 中添加一个非 swingNode 时,它可以工作并显示按钮,但是在 swingNode 方式中它不起作用!
最佳答案
由于您是“手动”管理所有布局,因此通过在按钮上调用 setLayout(null)
和 setBounds(...);
,您需要也可以手动调整面板尺寸:
private void createSwingContent(final SwingNode swingNode) {
SwingUtilities.invokeLater(() -> {
JButton jButton = new JButton("Click me!");
jButton.setBounds(0,0,80,50);
JPanel panel = new JPanel();
panel.setLayout(null);
panel.add(jButton);
panel.setSize(90, 60);
swingNode.setContent(panel);
});
}
或者,使用布局管理器(例如,仅使用默认布局管理器,如此处所示):
private void createSwingContent(final SwingNode swingNode) {
SwingUtilities.invokeLater(() -> {
JButton jButton = new JButton("Click me!");
// jButton.setBounds(0,0,80,50);
jButton.setPreferredSize(new Dimension(80, 50));
JPanel panel = new JPanel();
// panel.setLayout(null);
panel.add(jButton);
swingNode.setContent(panel);
});
}
使用当前代码,该按钮将添加到 JPanel
中,但由于 JPanel
的宽度和高度为零,因此 SwingNode
的宽度和高度也为零>,因此您看不到该按钮。
顺便说一句,将 swingNode
设为静态是错误的。如果您要在应用程序中多次加载 FXML,则场景图中的两个不同位置将具有相同的节点,这是不允许的。
关于java - 将 swingNode 添加到 javaFx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38691580/
编辑:我在下面留下了我原来的问题。如果您希望使用 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(
我是一名优秀的程序员,十分优秀!