0
我目前正在开发一个JavaFX桌面应用程序,它将取代现有的基于浏览器的应用程序。
这个新的应用程序可以选择启动外部应用程序。
我现在想知道是否有机会在现有的JavaFX应用程序中启动这些外部应用程序?是否可以在JavaFX中嵌入外部程序?
换句话说,有没有办法在JavaFX中嵌入外部应用程序?
我目前正在开发一个JavaFX桌面应用程序,它将取代现有的基于浏览器的应用程序。
这个新的应用程序可以选择启动外部应用程序。
我现在想知道是否有机会在现有的JavaFX应用程序中启动这些外部应用程序?是否可以在JavaFX中嵌入外部程序?
换句话说,有没有办法在JavaFX中嵌入外部应用程序?
你的意思是这样的吗?
JavaFX的:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.stage.Stage;
public class Main extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage stage) {
Button fxButton = new Button("javafx button");
fxButton.setOnAction(event -> new SwingTest());
Scene scene = new Scene(fxButton, 600, 400);
stage.setScene(scene);
stage.show();
}
}
摇摆:
import javax.swing.JFrame;
import javax.swing.WindowConstants;
import java.awt.Button;
public class SwingTest extends JFrame {
SwingTest() {
Button swingButton = new Button("swing button");
getContentPane().add(swingButton);
setSize(600, 600);
setVisible(true);
}
}
如果外部应用程序是Swing应用程序,您可以在一个['SwingNode']其主要内容(http://docs.oracle的.com/JavaSE的/ 8/JavaFX的/ API/JavaFX的/嵌入/摆动/ SwingNode.html)。这假定应用程序的编写方式使得主要内容可以被适当地分解,以便它可以被包含在任意容器中,而不仅仅是在“JFrame”中。 –
@James_D应用程序可以以这种方式集成,但它们是相当大的独立应用程序,因此以这种方式集成它们会花费太多的工作和精力。我已经将一些小的遗留件与摆动节点集成在一起,但从长远来看这是不可行的。 – Brenin
您不能在JavaFX应用程序内显示'JFrame'(或其他窗口)*,如果这就是您要求的。当然,您可以在桌面上显示窗口(提供awt工具包存在,并且您正确地编写代码)。 –