JFrame に JTabbedPane を持つ Java アプリケーションがあります。
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.
}
}
});
}
}
では、新しいプロセス/jvm でクラスを実行し、JTabbedPane に追加するにはどうすればよいでしょうか? JNI は必要ですか? もしそうなら、私は何を見ているでしょうか?どこを見て、どのように始めればよいかを知る必要があるだけです。