当前位置: 首页 > 知识库问答 >
问题:

JavaFX中StackPane上的BuffereImage

许兴文
2023-03-14

我有一个BufferedImage,我想在stackpane中显示,因为我在JavaFX应用程序中工作。几天前我也处于同样的情况,但我在Java工作,在这种情况下,我喜欢这样:

public static  void VisImmagineDaPc(JFrame frame, BufferedImage image) throws Throwable
             {
                    if (label==null){
                    label = new JLabel(new ImageIcon(image));


                    frame.getContentPane().add(label, BorderLayout.AFTER_LAST_LINE);
                    // frame.setSize(10, 10);
                    int larghezza = frame.getWidth();
                    int altezza = frame.getHeight();

//                  frame.setSize(larghezza, altezza); 
                    frame.setSize(larghezza, altezza );
                    frame.setResizable(false);  
                    frame.setVisible(true);
        }

...

该方法继续使用其他代码,但目前并不重要。所以,在Java我用图像创建一个Jtag,然后添加到Jframe。我必须在JavaFX中做什么才能在Stackpane中显示图片?我尝试了content.get儿童(). addAll(图像);其中内容是一个stackpane,但它不工作。

提前感谢,我为问题的简单道歉。

共有1个答案

司马建柏
2023-03-14

buffereImage转换为JavafxImage后,您必须向堆栈窗格添加节点,而图像不是节点,因此您可以使用图像构建图像视图

@FXML StackPane s;

@FXML void initialize(){

    BufferedImage b = ImageIO.read(file);
    Image i = SwingFXUtils.toFXImage(b, null);

    ImageView v = new ImageView(i);
    s.getChildren().add(v);
}
 类似资料:
  • 我的BorderPane的中心有一个名为designView的堆栈窗格(FXML定义的堆栈窗格)。我试图在designView中获得一个可拖动的窗格。如果我将该窗格添加到rootView(我的BordePane)中,一切都很好。但是,如果我尝试将其添加到designView中,如下所示: 窗格在设计视图中显示正确,但不再可拖动。MouseEvents会触发,但窗格的位置没有更新。我认为问题在于la

  • 我想要一个堆栈窗格来模拟FullHD显示,即1920x1080。 下面是创建堆栈窗格并处理它的代码: DisplayPane构造函数方法 ControlButtonPane构造函数类方法: 任何帮助都会很好。

  • 我在StackPane中调整ImageView的大小时遇到了一个问题:如果StackPane是根容器,并且我将图像的高度和宽度绑定到StackPane,则一切正常。 但若我将这样的堆栈窗格放置在网格中,那个么图像的大小就无法正确调整。正如我所读到的,ImageView无法调整大小的问题。有什么方法可以调整它的大小吗?或者你能给一些建议如何调整ImageView的大小吗?

  • 我在练习javafx做饼图。下面是开发饼图的代码。如果使用和,我发现输出没有区别。

  • 您好,当鼠标单击stackpane(父)时,我试图取消选择listview项。我尝试了这段代码,但当用户单击按钮(Stackpane的子项)时,事件仍然被触发: 如何仅触发stackpane鼠标事件单击?

  • 当我运行以下程序时: 我只在文本标签周围得到一个红色框,但是当我取消注释上面的Platform.runLater()块内的两行时,我在外椭圆周围得到一个红色框,这就是我想要的。因此,在我看来,堆栈窗格的布局边界没有从模型描述中正确设置,因为边界仅从标签控件中确定。但是当我在 Platform.runLater() 中强制无效时,布局边界就在它们应该在的位置。 为什么会发生这种情况,我该如何防止?我