Java 类的新JVM进程

Java 类的新JVM进程,java,process,jvm,Java,Process,Jvm,我有一个java应用程序,它在JFrame中有一个JTabbedPane 我想模拟firefox选项卡。当您运行小程序时,它会以某种方式为该小程序启动一个新进程,当您终止该选项卡时,该进程将终止。我想对组件类执行此操作 目前我有: package pkgmessaging; import java.awt.event.*; import javax.swing.*; import java.awt.*; import java.util.ArrayList; public class Fra

我有一个java应用程序,它在JFrame中有一个JTabbedPane

我想模拟firefox选项卡。当您运行小程序时,它会以某种方式为该小程序启动一个新进程,当您终止该选项卡时,该进程将终止。我想对组件类执行此操作

目前我有:

package pkgmessaging;

import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
import java.util.ArrayList;

public class Frame extends javax.swing.JFrame {
    private final JTabbedPane TabPane = new JTabbedPane();
    private ArrayList<Message> Messages = new ArrayList<>();

    public Frame() {
        this.add(TabPane);
        this.pack();
        this.setVisible(true);
        this.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
    }

    public void addMessage() {
        //Message is a JPanel that holds other components.
        Message C = new Message();  //Some how create this in a new Process/JVM and add it to my JTabbedPane.


        this.Messages.add(C);
        this.addTab(TabPane, "One", C);
        this.pack();
    }

    private void addTab(final String Title, final Component component) {
        //To other stuff here..

        CloseButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                synchronized (Frame.this.TabPane) {
                    TabPane.remove(component);

                    //Some how close the process/jvm here.
                }
            }
        });
    }
}
package-pkgmessaging;
导入java.awt.event.*;
导入javax.swing.*;
导入java.awt.*;
导入java.util.ArrayList;
公共类框架扩展了javax.swing.JFrame{
私有最终JTabbedPane TabPane=新JTabbedPane();
private ArrayList Messages=new ArrayList();
公共框架(){
添加(选项卡窗格);
这个包();
此.setVisible(true);
setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
}
public void addMessage(){
//消息是一个包含其他组件的JPanel。
Message C=new Message();//了解如何在新进程/JVM中创建此消息,并将其添加到我的JTabbedPane中。
本条.Messages.add(C);
这个.addTab(TabPane,“一”,C);
这个包();
}
专用void addTab(最终字符串标题、最终组件){
//到这里的其他东西。。
addActionListener(新建ActionListener()){
@凌驾
已执行的公共无效操作(操作事件e){
已同步(Frame.this.TabPane){
TabPane.移除(组件);
//有些人认为进程/jvm离这里有多近。
}
}
});
}
}

那么,如何在新进程/jvm中运行一个类并将其添加到我的JTabbedPane中呢?我需要JNI吗?如果是,我会看什么?我只需要知道从何处查找和如何开始。

为什么要这样做?因为我想了解firefox选项卡的工作原理,并且我想在某种浏览器应用程序中实现我自己的选项卡。可能重复^No,因为它没有显示如何将组件或应用程序添加到选项卡。