import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridLayout;
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.JLabel;
import javax.swing.JPanel;
import javax.swing.JToggleButton;
import javax.swing.UIManager;
public class MoveGamePanel extends JPanel {
private JPanel p[] = new JPanel[20];
private JToggleButton tb[] = new JToggleButton[10];
private JLabel l[] = new JLabel[10];
private Color user_gray, user_green, user_green2, user_orange, user_yellow, user_red;
private JPanel p_buttons, p_field;
public MoveGamePanel() {
user_gray = new Color(212,208,200);
user_green = new Color(207,239,148);
user_green2 = new Color(52,218,89);
user_orange = new Color(255,210,140);
user_yellow = new Color(255,255,215);
user_red = new Color(250, 210, 210);
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
} catch(Exception e) {
System.out.println("Error setting native LAF: " + e);
}
this.setSize(550, 400);
this.setLayout(new BorderLayout(20,20));
this.setBackground(user_gray);
MyMouseListener mml = new MyMouseListener();
MyActionListener mal = new MyActionListener();
Dimension d = new Dimension(150,390);
p_field = new JPanel(new GridLayout(5,4,3,3));
p_buttons = new JPanel(new GridLayout(5,2));
p_buttons.setPreferredSize(d);
p_buttons.setMinimumSize(d);
for(int i=0;i<10;i++){
tb[i] = new JToggleButton(""+i);
tb[i].addActionListener(mal);
tb[i].setBackground(user_orange);
}
for (int i=0;i<10;i++){
l[i]= new JLabel(""+i);
l[i].setBorder(BorderFactory.createRaisedBevelBorder());
l[i].setHorizontalAlignment(JLabel.CENTER);
l[i].setOpaque(true);
l[i].setBackground(Color.WHITE);
}
for (int i=0;i<20;i++){
p[i] = new JPanel();
p[i].setBorder(BorderFactory.createBevelBorder(1));
p[i].setLayout(new GridLayout());
p[i].addMouseListener(mml);
p[i].setBackground(user_gray);
if(i>9){
p[i].add(tb[i-10]);
}
}
for(int i=0;i<10;i++){
this.add(l[i]);
this.add(p[i*2]);
this.add(p[(i*2)+1]);
}
for(int i=0;i<20;i++){
if(i<10){
p_field.add(l[i]);
p_field.add(p[i]);
}else{
p_buttons.add(p[i]);
}
}
this.add(p_field, BorderLayout.CENTER);
this.add(p_buttons, BorderLayout.LINE_END);
}
public class MyActionListener implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
for (int i=0;i<10;i++){
if(e.getSource()!=tb[i]){
if(tb[i].isSelected())tb[i].setSelected(false);
}else{
tb[i].setBorder(BorderFactory.createEtchedBorder(2, Color.RED, Color.DARK_GRAY));
}
}
}
}
public class MyMouseListener extends MouseAdapter {
@Override
public void mouseClicked(MouseEvent arg0) {
}
@Override
public void mouseEntered(MouseEvent arg0) {
((JPanel)arg0.getComponent()).setBorder(BorderFactory.createEtchedBorder(2, Color.RED, Color.DARK_GRAY));
}
@Override
public void mouseExited(MouseEvent arg0) {
((JPanel)arg0.getComponent()).setBorder(BorderFactory.createBevelBorder(1));
}
@Override
public void mousePressed(MouseEvent arg0) {
for (int i=0;i<10;i++){
if(tb[i].isSelected()){
((JPanel)arg0.getComponent()).add(tb[i]);
tb[i].setSelected(false);
tb[i].setBorder(BorderFactory.createCompoundBorder());
break;
}
}
for(int i=0;i<20;i++)p[i].repaint();
}
@Override
public void mouseReleased(MouseEvent arg0) {
}
}
}