import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.MouseAdapter;
import javax.swing.*;
import com.sun.org.apache.bcel.internal.generic.NEW;
import java.awt.CardLayout;
public class Beispiel
{
JPanel glass = new JPanel();
private JFrame jFrame = null; // @jve:decl-index=0:visual-constraint="102,65"
private JPanel jContentPane = null;
private JPanel jPanel = null;
private JButton jButton2 = null;
private JComponent jPanel1 = null;
private JButton jButton = null;
private JButton jButton3 = null;
private JButton jButton4 = null;
private JComponent jPanel3 = null;
private JPanel jPanel2 = null;
private JFrame getJFrame ( )
{
if (jFrame == null)
{
jFrame = new JFrame ( );
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jFrame.setSize(new java.awt.Dimension(445,317));
jFrame.setTitle("Hallo,Testbild");
jFrame.setContentPane(getJContentPane());
jFrame.setVisible(true);
}
return jFrame;
}
private JPanel getJContentPane ( )
{
if (jContentPane == null)
{
GridLayout gridLayout = new GridLayout();
gridLayout.setRows(1);
jContentPane = new JPanel ( );
jContentPane.setLayout(gridLayout);
jContentPane.add(getJPanel(), null);
}
return jContentPane;
}
private JPanel getJPanel ( )
{
if (jPanel == null)
{
jPanel = new JPanel ( );
jPanel.setLayout(new BorderLayout());
jPanel.add(getJPanel2(), java.awt.BorderLayout.WEST);
}
return jPanel;
}
private JButton getJButton2 ( )
{
if (jButton2 == null)
{
jButton2 = new JButton ( );
jButton2.setText("Irgendwas");
jButton2.setPreferredSize(new java.awt.Dimension(80,50));
jButton2.setName("jButton2"); // Generated
jButton2.setToolTipText("Hallo, ich bin ein Button");
jButton2.addActionListener (new java.awt.event.ActionListener ( )
{
public void actionPerformed (java.awt.event.ActionEvent e)
{
Glassed glassed = new Glassed();
glassed.getContent().setLayout( new GridLayout( 1, 1 ));
JPanel glass = new JPanel();
glass.setOpaque( false );
glass.addMouseListener( new MouseAdapter(){} );
glassed.setGlass( glass );
glassed.getContent().add( jPanel3 );
// jPanel3 = glassed;
}
});
}
return jButton2;
}
private JButton getJButton ( )
{
if (jButton == null)
{
jButton = new JButton ( );
jButton.setText("Ende");
jButton.setName("jButton"); // Generated
jButton.addActionListener (new java.awt.event.ActionListener ( )
{
public void actionPerformed (java.awt.event.ActionEvent e)
{
System.exit(0);
}
});
}
return jButton;
}
private JButton getJButton3 ( )
{
if (jButton3 == null)
{
jButton3 = new JButton ( );
jButton3.setText("Button");
}
return jButton3;
}
public void setEnabled(boolean state)
{
super.setEnabled(state);
if (!state) jButton3.setBackground(Color.RED);
}
private JButton getJButton4 ( )
{
if (jButton4 == null)
{
jButton4 = new JButton ( );
jButton4.setText("Nocheiner");
}
return jButton4;
}
private JComponent getJPanel1 ( )
{
if (jPanel1 == null)
{
jPanel1 = new JPanel ( );
jPanel1.setLayout(new FlowLayout());
jPanel1.add(getJButton2(), null); // Generated
jPanel1.add(getJButton(), getJButton().getName()); // Generate
}
return jPanel1;
}
/**
* This method initializes jPanel3
*
* @return javax.swing.JPanel
*/
private JComponent getJPanel3 ( )
{
if (jPanel3 == null)
{
jPanel3 = new JPanel ( );
jPanel3.setLayout(new FlowLayout());
jPanel3.add(getJButton3(), null);
jPanel3.add(getJButton4(), null);
}
return jPanel3;
}
/**
* This method initializes jPanel2
*
* @return javax.swing.JPanel
*/
private JPanel getJPanel2 ( )
{
if (jPanel2 == null)
{
jPanel2 = new JPanel ( );
jPanel2.setLayout(new BorderLayout());
jPanel2.add(getJPanel1(), java.awt.BorderLayout.SOUTH);
jPanel2.add(getJPanel3(), java.awt.BorderLayout.NORTH);
}
return jPanel2;
}
public static void main (String [ ] args)
{
Beispiel beispiel = new Beispiel();
beispiel.getJFrame();
}
}
class Glassed extends JLayeredPane{
private JComponent glass;
private JComponent content;
public Glassed(){
glass = new JPanel();
glass.setOpaque( false );
setLayer( glass, JLayeredPane.MODAL_LAYER.intValue() );
add( glass );
content = new JPanel();
setLayer( content, JLayeredPane.DEFAULT_LAYER.intValue() );
add( content );
invalidate();
}
public JComponent getContent() {
return content;
}
public void setGlass( JComponent glass ) {
remove( this.glass );
this.glass = glass;
setLayer( glass, JLayeredPane.MODAL_LAYER.intValue() );
add( glass );
invalidate();
}
@Override
public Dimension getPreferredSize() {
return content.getPreferredSize();
}
@Override
public Dimension getMinimumSize() {
return content.getMinimumSize();
}
@Override
public Dimension getMaximumSize() {
return content.getMaximumSize();
}
@Override
public void doLayout() {
content.setBounds( 0, 0, getWidth(), getHeight() );
glass.setBounds( 0, 0, getWidth(), getHeight() );
}
}