java - 将 Perametertype 转换为类不起作用
问题描述
我正在研究 JavaFx。我想显示 javaFX 类中使用的节点数。因为我得到了类及其启动方法。
NodeClassTree
是一个 javaFX 类,我只使用 start 方法和
在下面的代码中,我得到了 start 方法。我将方法的参数作为一个类。
但我不能将该类转换为Stage
Class 对象。
public static void main(String[] args)
{
try
{
Method myClasss = NodeClassTree.class.getDeclaredMethod("start",Stage.class);
System.out.println(myClasss.getParameterTypes()[0].getCanonicalName());
Class<?> stg = myClasss.getParameterTypes()[0];
System.out.println(stg);
stg.cast(new Stage()); //.........[1] Not Working
//stg.cast(new Object()); //.........[2] Not Working
}
catch(Exception e)
{
System.err.println("ERROR : "+e);
}
}
节点类树.java
public class NodeClassTree extends Application {
@Override
public void start(Stage primaryStage){
BorderPane bdrpn = new BorderPane();
Scene cin = new Scene(bdrpn);
primaryStage.setScene(cin);
}
public static void main(String[] args) {
launch(args);
}
}
错误
Exception in thread "main" java.lang.ExceptionInInitializerError
at javafx.stage.Window.<init>(Window.java:1191)
at javafx.stage.Stage.<init>(Stage.java:239)
at javafx.stage.Stage.<init>(Stage.java:227)
at application.Controls.GetTree.main(GetTree.java:21)
Caused by: java.lang.IllegalStateException: This operation is permitted on the event thread only; currentThread = main
at com.sun.glass.ui.Application.checkEventThread(Application.java:443)
at com.sun.glass.ui.Screen.setEventHandler(Screen.java:285)
at com.sun.javafx.tk.quantum.QuantumToolkit.setScreenConfigurationListener(QuantumToolkit.java:667)
at javafx.stage.Screen.<clinit>(Screen.java:79)
... 4 more
我得到类的名称,getCanonicalName()
但我想转换geterameterTypes()[0]
成舞台类之后我想得到Scene
对象
解决方案
正如异常所说,您正在非 UI 线程上进行 UI 更新。你应该使用Platform.runLater()
推荐阅读
- c# - 当侦听器连接到队列时,发布者无法在 RabbitMq 代理中发布消息
- c# - 如何以编程方式从与 Asp.NET MVC 中控制器的模型数据绑定的表中添加\删除行
- python - 为什么 numpy 数组具有 1) 列表作为索引和 2) 索引 0:1 vs 2) 0 给出不同的结果
- python - 根据范围替换numpy数组中的重复元素
- log4j - 使用 MDC 打印键和值
- highcharts - 在 Highcharts 折线图中设置线边框属性(颜色/宽度)
- php - 从文本中过滤脏话
- amazon-cloudformation - 如何使用 aws cloudformation 或 aws cdk 设置 aws aurora mysql 表?
- reactjs - React ASP.NET Core - js“类型断言表达式”只能在.ts文件中使用
- r - dplyr 中单行的操作