Java 在netbeans中,单击两个不同的复选框,一个接一个地调用两个不同的窗口,就会出现异常

Java 在netbeans中,单击两个不同的复选框,一个接一个地调用两个不同的窗口,就会出现异常,java,swing,javafx,Java,Swing,Javafx,以下是复选框的两个函数 复选框:ActiveBox private void Active_BoxActionPerformed(java.awt.event.ActionEvent evt) { if (Active_Box.isSelected() == true) { Active_Link.main(args); } } private void SQL_boxActionPerformed(java.awt.event.ActionEvent evt)

以下是复选框的两个函数

复选框:ActiveBox

private void Active_BoxActionPerformed(java.awt.event.ActionEvent evt) {
    if (Active_Box.isSelected() == true) {
       Active_Link.main(args);
    }
}
private void SQL_boxActionPerformed(java.awt.event.ActionEvent evt) {
    if (ESC_box.isSelected() == true) {
       ESC.main(args);
    }
}
复选框:SQLBox

private void Active_BoxActionPerformed(java.awt.event.ActionEvent evt) {
    if (Active_Box.isSelected() == true) {
       Active_Link.main(args);
    }
}
private void SQL_boxActionPerformed(java.awt.event.ActionEvent evt) {
    if (ESC_box.isSelected() == true) {
       ESC.main(args);
    }
}
Active.java

public class Active extends Application { 
private final Node rootIcon=null; 

TreeItem<String> rootNode = new TreeItem<String>("My Workflows");

public static void main(String[] args) {
    launch(args);
}

public void start(Stage stage) {
    rootNode.setExpanded(true);
    BufferedReader reader = null;

    try {
       reader = new BufferedReader(new FileReader("D:\\onlyForms.txt"));

       String line=null;

       while ((line = reader.readLine()) != null) {
           if (line.indexOf("Checking") >= 0) {
               String next=reader.readLine();
               if(next.contains("Passed_qualification ")) {
                  TreeItem<String> depNode = new TreeItem<String>(line)              
                  depNode.setExpanded(false);
                  TreeItem<String> depNode1 = new TreeItem<String>(next); 
                  depNode.getChildren().add(depNode1);
                  String next1=reader.readLine();
                  TreeItem<String> depNode2 = new TreeItem<String>(next1);
                  depNode.getChildren().add(depNode2);
                  rootNode.getChildren().add(depNode);
               }
               if(next.contains("Failed_qualification ")) {
                  TreeItem<String> depNode = new TreeItem<String>(line);
                  depNode.setExpanded(false);
                  TreeItem<String> depNode1 = new TreeItem<String>(next); 
                  depNode.getChildren().add(depNode1);
                  String next1=reader.readLine();
                  TreeItem<String> depNode2 = new TreeItem<String>(next1);
                  depNode.getChildren().add(depNode2);
                  rootNode.getChildren().add(depNode);
        }
        stage.setTitle("Escalations");
        VBox box = new VBox();
        final Scene scene = new Scene(box, 500, 500);
        scene.setFill(Color.LIGHTGRAY);
        box.setStyle("-fx-font: 18 arial;"); 
        TreeView<String> treeView = new TreeView<String>(rootNode);
        box.getChildren().add(treeView);
        stage.setScene(scene);
        stage.show();
    }
}
public class SQL extends Application { 
  static String str=null;

  static  String next_line=null;

  static BufferedReader br;

  private final Node rootIcon; 

  public static void main(String[] args) throws IOException {           
     launch(args);

  }

  public SQL() {
      this.rootIcon = null;
  }

  public void start(Stage stage) throws IOException {
    rootNode.setExpanded(true);

    BufferedReader reader=null;

    try
    {
      FileInputStream f=new FileInputStream("D:\\SQL\\SQL_XML_TXT.txt");
      reader = new BufferedReader(new InputStreamReader(f));
      String line=null;
      while ((line = reader.readLine()) != null) {   
         if (line.indexOf("TID") >=0) { 
           String next1=reader.readLine();
           String next2=reader.readLine();
           String next3=reader.readLine();
           String next4=reader.readLine();
           String next5=reader.readLine();
           String next6=reader.readLine();
           String next7=reader.readLine();

           String time_date=SQL.GetTime(br);

           if(((next7.indexOf("OK"))<0)) {
              if(((next7.indexOf("SQL Trace Log- ON"))<0)) {  
                TreeItem<String>depNode=new TreeItem<String>(line);
                depNode.setExpanded(false);
                TreeItem<String> depNode1 = new TreeItem<String>(next1); 
                depNode.getChildren().add(depNode1);

                TreeItem<String> depNode2=new TreeItem<String>(next2);

                depNode1.getChildren().add(depNode2);

                TreeItem<String> depNode3=new TreeItem<String>(next3);
                depNode1.getChildren().add(depNode3);

                TreeItem<String> depNode4=new TreeItem<String>(next4);

                depNode1.getChildren().add(depNode4);   

                TreeItem<String> depNode5=new TreeItem<String>(next5);
                depNode1.getChildren().add(depNode5);

                TreeItem<String> depNode6=new TreeItem<String>(next6);

                depNode1.getChildren().add(depNode6);  

                TreeItem<String> depNode7=new TreeItem<String>(next7);

                depNode1.getChildren().add(depNode7);  
                rootNode.getChildren().add(depNode);
              }

            } 
          }
      }

   }        
   stage.setTitle("Escalations");
   VBox box = new VBox();
   final Scene scene = new Scene(box, 500, 500);
   scene.setFill(Color.LIGHTGRAY);
   box.setStyle("-fx-font: 18 arial;");
   TreeView<String> treeView = new TreeView<String>(rootNode);
   box.getChildren().add(treeView);
   stage.setScene(scene);
   stage.show();
  }
}
公共类活动扩展应用程序{
私有最终节点rootIcon=null;
TreeItem rootNode=newtreeitem(“我的工作流”);
公共静态void main(字符串[]args){
发射(args);
}
公众假期开始(阶段){
setExpanded(true);
BufferedReader reader=null;
试一试{
reader=新的BufferedReader(新的文件读取器(“D:\\onlyForms.txt”);
字符串行=null;
而((line=reader.readLine())!=null){
if(line.indexOf(“Checking”)>=0){
String next=reader.readLine();
如果(下一个包含(“通过资格认证”)){
TreeItem depNode=新的TreeItem(行)
depNode.setExpanded(false);
TreeItem depNode1=新的TreeItem(下一个);
depNode.getChildren().add(depNode1);
字符串next1=reader.readLine();
TreeItem depNode2=新的TreeItem(next1);
depNode.getChildren().add(depNode2);
rootNode.getChildren().add(depNode);
}
如果(下一个包含(“未通过资格审查”)){
TreeItem depNode=新的TreeItem(行);
depNode.setExpanded(false);
TreeItem depNode1=新的TreeItem(下一个);
depNode.getChildren().add(depNode1);
字符串next1=reader.readLine();
TreeItem depNode2=新的TreeItem(next1);
depNode.getChildren().add(depNode2);
rootNode.getChildren().add(depNode);
}
阶段。设置标题(“升级”);
VBox box=新的VBox();
最终场景=新场景(框,500,500);
场景。设置填充(颜色。浅灰色);
box.setStyle(“-fx字体:18 arial;”);
TreeView TreeView=新的TreeView(rootNode);
box.getChildren().add(treeView);
舞台场景;
stage.show();
}
}
SQL.java

public class Active extends Application { 
private final Node rootIcon=null; 

TreeItem<String> rootNode = new TreeItem<String>("My Workflows");

public static void main(String[] args) {
    launch(args);
}

public void start(Stage stage) {
    rootNode.setExpanded(true);
    BufferedReader reader = null;

    try {
       reader = new BufferedReader(new FileReader("D:\\onlyForms.txt"));

       String line=null;

       while ((line = reader.readLine()) != null) {
           if (line.indexOf("Checking") >= 0) {
               String next=reader.readLine();
               if(next.contains("Passed_qualification ")) {
                  TreeItem<String> depNode = new TreeItem<String>(line)              
                  depNode.setExpanded(false);
                  TreeItem<String> depNode1 = new TreeItem<String>(next); 
                  depNode.getChildren().add(depNode1);
                  String next1=reader.readLine();
                  TreeItem<String> depNode2 = new TreeItem<String>(next1);
                  depNode.getChildren().add(depNode2);
                  rootNode.getChildren().add(depNode);
               }
               if(next.contains("Failed_qualification ")) {
                  TreeItem<String> depNode = new TreeItem<String>(line);
                  depNode.setExpanded(false);
                  TreeItem<String> depNode1 = new TreeItem<String>(next); 
                  depNode.getChildren().add(depNode1);
                  String next1=reader.readLine();
                  TreeItem<String> depNode2 = new TreeItem<String>(next1);
                  depNode.getChildren().add(depNode2);
                  rootNode.getChildren().add(depNode);
        }
        stage.setTitle("Escalations");
        VBox box = new VBox();
        final Scene scene = new Scene(box, 500, 500);
        scene.setFill(Color.LIGHTGRAY);
        box.setStyle("-fx-font: 18 arial;"); 
        TreeView<String> treeView = new TreeView<String>(rootNode);
        box.getChildren().add(treeView);
        stage.setScene(scene);
        stage.show();
    }
}
public class SQL extends Application { 
  static String str=null;

  static  String next_line=null;

  static BufferedReader br;

  private final Node rootIcon; 

  public static void main(String[] args) throws IOException {           
     launch(args);

  }

  public SQL() {
      this.rootIcon = null;
  }

  public void start(Stage stage) throws IOException {
    rootNode.setExpanded(true);

    BufferedReader reader=null;

    try
    {
      FileInputStream f=new FileInputStream("D:\\SQL\\SQL_XML_TXT.txt");
      reader = new BufferedReader(new InputStreamReader(f));
      String line=null;
      while ((line = reader.readLine()) != null) {   
         if (line.indexOf("TID") >=0) { 
           String next1=reader.readLine();
           String next2=reader.readLine();
           String next3=reader.readLine();
           String next4=reader.readLine();
           String next5=reader.readLine();
           String next6=reader.readLine();
           String next7=reader.readLine();

           String time_date=SQL.GetTime(br);

           if(((next7.indexOf("OK"))<0)) {
              if(((next7.indexOf("SQL Trace Log- ON"))<0)) {  
                TreeItem<String>depNode=new TreeItem<String>(line);
                depNode.setExpanded(false);
                TreeItem<String> depNode1 = new TreeItem<String>(next1); 
                depNode.getChildren().add(depNode1);

                TreeItem<String> depNode2=new TreeItem<String>(next2);

                depNode1.getChildren().add(depNode2);

                TreeItem<String> depNode3=new TreeItem<String>(next3);
                depNode1.getChildren().add(depNode3);

                TreeItem<String> depNode4=new TreeItem<String>(next4);

                depNode1.getChildren().add(depNode4);   

                TreeItem<String> depNode5=new TreeItem<String>(next5);
                depNode1.getChildren().add(depNode5);

                TreeItem<String> depNode6=new TreeItem<String>(next6);

                depNode1.getChildren().add(depNode6);  

                TreeItem<String> depNode7=new TreeItem<String>(next7);

                depNode1.getChildren().add(depNode7);  
                rootNode.getChildren().add(depNode);
              }

            } 
          }
      }

   }        
   stage.setTitle("Escalations");
   VBox box = new VBox();
   final Scene scene = new Scene(box, 500, 500);
   scene.setFill(Color.LIGHTGRAY);
   box.setStyle("-fx-font: 18 arial;");
   TreeView<String> treeView = new TreeView<String>(rootNode);
   box.getChildren().add(treeView);
   stage.setScene(scene);
   stage.show();
  }
}
公共类SQL扩展应用程序{
静态字符串str=null;
下一行的静态字符串=null;
静态缓冲读取器br;
私有最终节点根图标;
公共静态void main(字符串[]args)引发IOException{
发射(args);
}
公共SQL(){
this.rootIcon=null;
}
public void start(Stage)引发IOException{
setExpanded(true);
BufferedReader reader=null;
尝试
{
FileInputStream f=新的FileInputStream(“D:\\SQL\\SQL\u XML\u TXT.TXT”);
reader=新的BufferedReader(新的InputStreamReader(f));
字符串行=null;
而((line=reader.readLine())!=null){
如果(line.indexOf(“TID”)>=0{
字符串next1=reader.readLine();
字符串next2=reader.readLine();
字符串next3=reader.readLine();
字符串next4=reader.readLine();
字符串next5=reader.readLine();
字符串next6=reader.readLine();
String next7=reader.readLine();
字符串time\u date=SQL.GetTime(br);

如果((next7.indexOf(“OK”))不要多次尝试调用
javafx.application.application.launch
。这会导致异常。如果要创建新窗口,只需创建一个新的
阶段
,并将新内容添加到此阶段(由于您是从Swing创建窗口,因此必须从JFX线程执行此操作;请参阅最后一段代码snipplet):

如果您仍然希望将
SQL
Active
作为应用程序的可能入口点,我建议编写与
start
方法基本相同的方法(减去舞台部分),但返回
场景
对象,例如:

public class Active extends Application {

    public static Scene createScene() {
        Scene scene = //... insert your code here

        return scene;
    }

    @Override
    public void start(Stage stage) throws Exception {
        stage.setScene(createScene());
        stage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }

}
private void Active_BoxActionPerformed(java.awt.event.ActionEvent evt) {
    if (Active_Box.isSelected() == true) {
        Platform.runLater(() -> { // invoke "Runnable" from JFX thread
            Stage stage = new Stage();
            stage.setScene(Active.createScene());
            stage.show();
        });
    }
}
并按如下方式更改复选框功能:

public class Active extends Application {

    public static Scene createScene() {
        Scene scene = //... insert your code here

        return scene;
    }

    @Override
    public void start(Stage stage) throws Exception {
        stage.setScene(createScene());
        stage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }

}
private void Active_BoxActionPerformed(java.awt.event.ActionEvent evt) {
    if (Active_Box.isSelected() == true) {
        Platform.runLater(() -> { // invoke "Runnable" from JFX thread
            Stage stage = new Stage();
            stage.setScene(Active.createScene());
            stage.show();
        });
    }
}
并对SQL部分执行相同的操作


如果您不需要
SQL
Active
作为入口点,那么您当然不需要扩展
Application

@所有这些,请回复我,以防此处缺少任何澄清“某些代码逻辑”。您的代码中必须有
javafx.Application.Application
(可能您在某个地方扩展了
应用程序
)。该部分完全缺失。如果您希望得到答案,请提供更多代码。(顺便说一句,我很确定您在
函数中留下的代码与问题无关)@费边,你能从中看出些什么吗,我已经发送了完整的代码,我到目前为止所做的。。