我正在使用JavaFX控件开发一个swing应用程序。
在此应用程序中,我具有三个控制按钮WebViewJTable
单击button1表时,应在屏幕上添加表格,单击其他按钮时,应删除网络视图
表格应删除,并应添加Web视图。

我正在使用以下代码。

  import javafx.application.Platform;
import javafx.scene.Scene;
import javafx.scene.web.*;
import javafx.stage.Stage;
import javafx.embed.swing.JFXPanel;
import javafx.scene.Group;
import javax.swing.*;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
 public class webviewtestclass extends JFrame implements ActionListener {
 JFXPanel fxpanel,fxpanel1;
 static String filepath;
JTable table;
  public  webviewtestclass()
  {
    setLayout(null);
    JButton b1= new JButton("OK");
    JButton b2= new JButton("OKK");
    add(b1);
    add(b2);
    b1.setBounds(20,50,50,30);
    b2.setBounds(70,50,50,30);
   b1.addActionListener(this);
   b2.addActionListener(this);

   fxpanel= new JFXPanel();
   add(fxpanel);
   fxpanel.setBounds(10,50,1000,800);


   Object obj=new Object[50][20];
   String title[]={"head1","head2"};
    table=new JTable(title,obj);
   add(table);


 }

   public void actionPerformed(ActionEvent ae)
   {
   if(ae.getActionCommand().equals("OK"))
    {
     remove(fxpanel);
      add(table);

     }
     if(ae.getActionCommand().equals("OKK"))
     {
      remove(table);
      add(fxpanel);

    }
     Platform.runLater(new Runnable() {
     public void run()
      {
        initFx(fxpanel);
      }}
        );
     }



  private static void initFx(final JFXPanel fxpanel)
  {
    String htmlpath="d:/lcrux/html/";
    Group group= new Group();
    Scene scene= new Scene(group);
    fxpanel.setScene(scene);
    WebView webview = new WebView ();
    group.getChildren().add(webview);
    webview.setMinSize(1200,800);
     webview.setMaxSize(1200,800);

      webview.setVisible(true);
      final WebEngine eng = webview.getEngine();
      File htmlFile = new File(htmlpath+filepath);
        try
        {
        eng.load(htmlFile.toURI().toURL().toString());
        }
        catch(Exception ex)
        {
        }
    }
  public static void main(final String args[])
    {


         webviewtestclass frm=new webviewtestclass();
         frm.show();

    }


  }

最佳答案

将两个组件都放在CardLayout中以在它们之间交换。在this answer中可以看到使用CardLayout的代码。

07-25 21:18