0

我正在使用 JavaFX 控件开发一个摆动应用程序。在这个应用程序中,我有三个控制按钮WebViewJTable。单击button1表时应在屏幕上添加并删除 Web 视图,而单击其他按钮时应删除表并添加 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();

    }


  }
4

1 回答 1

2

将两个组件放在 aCardLayout中以在它们之间进行交换。在这个答案CardLayout中可以看到使用 a 的代码。

于 2012-12-01T04:34:54.190 回答