问题描述
在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透视图中)将再次运行该应用程序,直到您运行其他内容为止。
解决方法
我在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