JLayeredPaneのサンプル。
JAppletの上にダイアログに見立てたボタンを表示する。


/*
* Created on 2006/01/27
*
*/
package test;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.BorderFactory;
import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JLayeredPane;

/**
* @author hal
*
*/
public class LayeredPaneApplet extends JApplet {
private JLayeredPane layeredPane;
private JButton pushMe;
private JButton messageDialog;

public void init() {
final int dialogWidth = 140;
final int dialogHeight = 140;
layeredPane = getLayeredPane();
pushMe = new JButton("Push me!");
pushMe.setOpaque(true);
messageDialog = new JButton("Hello");
messageDialog.setOpaque(true);
messageDialog.setBorder(BorderFactory.createRaisedBevelBorder());
messageDialog.setBounds(0, 0, dialogWidth, dialogHeight);
messageDialog.setVisible(false);
messageDialog.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent action) {
messageDialog.setVisible(false);
}
});
layeredPane.add(messageDialog, JLayeredPane.DEFAULT_LAYER);
// pushMe.addActionListener(new ActionListener() {
// public void actionPerformed(ActionEvent e) {
// int x = (getWidth() - dialogWidth) / 2;
// int y = (getHeight() - dialogHeight) / 2;
// messageDialog.setLocation(x, y);
// messageDialog.setVisible(true);
// }
// });
pushMe.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent mouse) {
int x = mouse.getX();
int y = mouse.getY();
x -= (dialogWidth / 2);
y -= (dialogWidth / 2);
messageDialog.setLocation(x, y);
messageDialog.setVisible(true);
}
});
getContentPane().add(pushMe);
setSize(400, 300);
}
}