アプレット内のコンテンツに基づいて、アプレットの「上」に描画できる GUI を作成しようとしています。これをテストするために、JLayeredPane を使用して、アプレットの上に表示される背景が塗りつぶされたパネルを作成して、単純な四角形を塗りつぶそうとしています。これを機能させることはできませんが、試してみます。
import java.applet.Applet;
import java.awt.Color;
import java.awt.GridLayout;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;
import javax.swing.JFrame;
import javax.swing.JLayeredPane;
import javax.swing.JPanel;
public class GUI {
private static JFrame frame;
private static JLayeredPane layers;
private static JPanel panel;
private static Applet applet;
private static final String JAR_PATH = "file:C:/Applet.jar";
public static void main(String args[]) throws MalformedURLException, ClassNotFoundException, InstantiationException, IllegalAccessException{
ClassLoader clientClassLoader = new URLClassLoader(new URL[]{new URL(JAR_PATH)});
Class<?> client = clientClassLoader.loadClass("Loader");
frame = new JFrame("JLayeredPane Testing");
frame.setSize(400, 400);
frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new GridLayout());
applet = (Applet) client.newInstance();
layers = new JLayeredPane();
panel = new JPanel();
panel.setSize(200, 200);
panel.setOpaque(true);
panel.setBackground(Color.BLACK);
layers.add(panel, JLayeredPane.PALETTE_LAYER);
layers.add(applet, JLayeredPane.DRAG_LAYER);
frame.setContentPane(layers);
frame.setVisible(true);
applet.init();
}
}
プログラムを実行してもアプレットが表示されないか、初期化されません。