Se afișează postările cu eticheta JLayeredPane. Afișați toate postările
Se afișează postările cu eticheta JLayeredPane. Afișați toate postările

joi, 24 decembrie 2009

Versiune usor diferira la modelul cu JLayeredPane

//Se foloseste constructorul de la JLayeredPane cu parametrul numar Integer in locul
//valorilor predefinite MODAL,PALLETE,POPUP.... sunt echivalente cu folosirea DEFAULT
//astfel se permite folosirea unui numar de <> componente intr-un Layer
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Layered
{
public static void main()
{
Layered gui=new Layered();
gui.go();
};
JButton buton;
int flag=0;
JLayeredPane layer;
JFrame frame;
JButton b1;
JButton b2;
JButton b3;
JLabel label;
public void go()
{
frame=new JFrame();
JLabel label2=new JLabel("Modal");
layer=new JLayeredPane();
label=new JLabel("Nimic");

b1=new JButton("1");
b2=new JButton("2");
b3=new JButton("3");

b1.setBackground(Color.cyan);
b2.setBackground(Color.magenta);
b3.setBackground(Color.lightGray);
label2.setBackground(Color.blue);

b1.setOpaque(true);
b2.setOpaque(true);
b3.setOpaque(true);
label2.setOpaque(true);


b1.setBounds(0,0,100,100);
b2.setBounds(30,30,100,100);
b3.setBounds(60,60,100,100);
label2.setBounds(80,80,100,100);

layer.add(b1,new Integer(10));
layer.add(b2,new Integer(9));
layer.add(b3,new Integer(8));
layer.add(label2,JLayeredPane.PALETTE_LAYER);
//Daca se foloseste DEFAULT_LAYER va fi suprapus de catre celelate componente

buton=new JButton("1<->2<->3");

frame.add(layer,BorderLayout.CENTER);
frame.add(buton,BorderLayout.SOUTH);
frame.getContentPane().add(label,BorderLayout.NORTH);

frame.setSize(300,300);
frame.setVisible(true);

buton.addActionListener(new List());
}
class List implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
flag++;
if(flag==1)//buton 1 in fata
{
label.setText("1,2,3 falg=1");
layer.setLayer(b1,new Integer(10));
layer.setLayer(b2,new Integer(9));
layer.setLayer(b3,new Integer(8));
}
else
if(flag==2)
{
label.setText("1,3,2 falg=2");
layer.setLayer(b1,new Integer(10));
layer.setLayer(b3,new Integer(9));
layer.setLayer(b2,new Integer(8));
}
else
if(flag==3)
{
label.setText("2,1,3 falg=3");
layer.setLayer(b2,new Integer(10));
layer.setLayer(b1,new Integer(9));
layer.setLayer(b3,new Integer(8));
}
else
if(flag==4)
{
label.setText("2,3,1 falg=4");
layer.setLayer(b2,new Integer(10));
layer.setLayer(b3,new Integer(9));
layer.setLayer(b1,new Integer(8));
}
else
if(flag==5)
{
label.setText("3,1,2 falg=5");
layer.setLayer(b3,new Integer(10));
layer.setLayer(b1,new Integer(9));
layer.setLayer(b2,new Integer(8));
}
else
if(flag==6)
{
label.setText("3,2,1 falg=6");
layer.setLayer(b3,new Integer(10));
//layer.setLayer(b2,new Integer(10));
//layer.setLayer(b1,new Integer(10));
layer.setLayer(b2,new Integer(9));
layer.setLayer(b1,new Integer(8));
flag=0;
JOptionPane.showMessageDialog(frame, "Ati ajuns la final");
}

}
}
}

Java - Folosire JLayeredPane si GridLayout


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.net.*;

public class GridPlusLayer
{
int nr_linii=0,nr_coloane=0;
JFrame frame;
JLabel label,labelAfisare, superLabel;
int x=10,y=10;
public static void main(int x,int y)
{
GridPlusLayer gui=new GridPlusLayer(x,y);
}


GridPlusLayer(int x,int y)
{
if(x>=0&&y>=0)
nr_linii=x;
nr_coloane=y;
frame=new JFrame("Butoane");
frame.setSize(nr_linii*75,nr_coloane*75);
JLayeredPane layer=new JLayeredPane();
JPanel panel=new JPanel();
panel.setLayout(new GridLayout(nr_linii,nr_coloane));
labelAfisare=new JLabel("Nimic");

for(int i=0;i<(nr_linii*nr_coloane);i++)
{

label=new JLabel("");
label.setOpaque(true);

int red=(int )(Math.random()*255);
int green=(int )(Math.random()*255);
int blue=(int )(Math.random()*255);
Color random=new Color(red,green,blue);
Color complementary=new Color (255-red,255-green,255-blue);
labelAfisare.setOpaque(true);
labelAfisare.setBackground(complementary);

label.setBackground(random);
label.setText(""+(i+1));
panel.add(label);


}
superLabel=new JLabel();
superLabel.setOpaque(true);
superLabel.setBounds(x,y,(int)(nr_linii*75*0.5),(int)(nr_coloane*75*0.5));
panel.setBounds(0,0,frame.getWidth(),frame.getHeight());
layer.add(panel,JLayeredPane.DEFAULT_LAYER);
layer.add(superLabel,JLayeredPane.PALETTE_LAYER);

frame.add(layer,BorderLayout.CENTER);
frame.add(labelAfisare,BorderLayout.NORTH);
frame.setVisible(true);
frame.setLocationRelativeTo(null);
layer.addMouseListener(new List());
}
class List implements MouseListener
{
public void mousePressed(MouseEvent e)
{
x=e.getX();
y=e.getY();
superLabel.setBounds(x,y,(int)(nr_linii*75*0.5),(int)(nr_coloane*75*0.5));
labelAfisare.setText("X: "+e.getX()+" Y: "+e.getY());
}

public void mouseReleased(MouseEvent e) {}
public void mouseClicked(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
}
}

miercuri, 23 decembrie 2009

Un exemplu simplu de folosire a JLayeredPane --- Java

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

public class Layed
{
public static void main()
{
Layed gui=new Layed();
gui.go();
};
JButton buton;
int flag=0;
JLayeredPane layer;
JButton b1;
JButton b2;
JButton b3;
JLabel label;
public void go()
{
JFrame frame=new JFrame();
layer=new JLayeredPane();
label=new JLabel("Nimic");
b1=new JButton("1");
b2=new JButton("2");
b3=new JButton("3");
b1.setBackground(Color.cyan);
b2.setBackground(Color.magenta);
b3.setBackground(Color.lightGray);
b1.setOpaque(true);
b2.setOpaque(true);
b3.setOpaque(true);
b1.setBounds(0,0,100,100);
b2.setBounds(30,30,100,100);
b3.setBounds(60,60,100,100);
layer.add(b1,JLayeredPane.DEFAULT_LAYER);
layer.add(b2,JLayeredPane.PALETTE_LAYER);
layer.add(b3,JLayeredPane.MODAL_LAYER);
buton=new JButton("1<->2<->3");
frame.add(layer,BorderLayout.CENTER);
frame.add(buton,BorderLayout.SOUTH);
frame.getContentPane().add(label,BorderLayout.NORTH);
frame.setSize(300,300);
frame.setVisible(true);
buton.addActionListener(new List());
}
class List implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
flag++;
if(flag==1)//buton 1 in fata
{
label.setText("1,2,3 falg=1");
layer.setLayer(b1,JLayeredPane.DEFAULT_LAYER);
layer.setLayer(b2,JLayeredPane.PALETTE_LAYER);
layer.setLayer(b3,JLayeredPane.MODAL_LAYER);
}
else
if(flag==2)
{
label.setText("1,3,2 falg=2");
layer.setLayer(b1,JLayeredPane.DEFAULT_LAYER);
layer.setLayer(b3,JLayeredPane.PALETTE_LAYER);
layer.setLayer(b2,JLayeredPane.MODAL_LAYER);
}
else
if(flag==3)
{
label.setText("2,1,3 falg=3");
layer.setLayer(b2,JLayeredPane.DEFAULT_LAYER);
layer.setLayer(b1,JLayeredPane.PALETTE_LAYER);
layer.setLayer(b3,JLayeredPane.MODAL_LAYER);
}
else
if(flag==4)
{
label.setText("2,3,1 falg=4");
layer.setLayer(b2,JLayeredPane.DEFAULT_LAYER);
layer.setLayer(b3,JLayeredPane.PALETTE_LAYER);
layer.setLayer(b1,JLayeredPane.MODAL_LAYER);
}
else
if(flag==5)
{
label.setText("3,1,2 falg=5");
layer.setLayer(b3,JLayeredPane.DEFAULT_LAYER);
layer.setLayer(b1,JLayeredPane.PALETTE_LAYER);
layer.setLayer(b2,JLayeredPane.MODAL_LAYER);
}
else
if(flag==6)
{
label.setText("3,2,1 falg=6");
layer.setLayer(b3,JLayeredPane.DEFAULT_LAYER);
//layer.setLayer(b2,JLayeredPane.DEFAULT_LAYER);
//layer.setLayer(b1,JLayeredPane.DEFAULT_LAYER);
layer.setLayer(b2,JLayeredPane.PALETTE_LAYER);
layer.setLayer(b1,JLayeredPane.MODAL_LAYER);
flag=0;
}
}
}
}