我在站点 oracle 上找到了这段代码,但我无法使用 Eclipse 启动,它说我“无法启动”。我已经安装了 JDK 8 但它不起作用...
有人有解决办法吗? :p
public class SwingFX extends Application {
@Override
public void start (Stage stage) {
final SwingNode swingNode = new SwingNode();
createSwingContent(swingNode);
StackPane pane = new StackPane();
pane.getChildren().add(swingNode);
stage.setTitle("Swing in JavaFX");
stage.setScene(new Scene(pane, 250, 150));
stage.show();
}
private void createSwingContent(final SwingNode swingNode) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
swingNode.setContent(new JButton("Click me!"));
}
});
}
}
链接到我找到代码的网站:https://docs.oracle.com/javafx/8/embed_swing/jfxpub-embed_swing.htm
请您参考如下方法:
在 Java 8 中,您可以直接启动 javafx.application.Application
子类,即使它没有 main(String[] args)
方法。问题是当前版本的 Eclipse 不检查这个,并且(至少在上下文菜单中)只检查 main(...)
方法是否存在。因此,要允许它从 Eclipse 运行,您可以自己添加 main(...)
方法:
public class SwingFX extends Application {
@Override
public void start(Stage stage) {
// ...
}
public static void main(String[] args) {
launch(args);
}
}
或者,您可以直接指示 Eclipse 从“运行配置”向导运行它。选择 SwingFX
类后,从菜单中选择“运行”,然后选择“运行配置”。在“主要”选项卡中,确保出现正确的类名(即“SwingFX”),然后按“运行”按钮。
设置完成后,工具栏上的绿色“运行”按钮(在 Java 透视图中)将再次运行该应用程序,直到您运行其他程序。