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) {}
}
}
joi, 24 decembrie 2009
Java - Folosire JLayeredPane si GridLayout
Abonați-vă la:
Postare comentarii (Atom)
Niciun comentariu:
Trimiteți un comentariu