1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
| public class DemoPanel extends JPanel {
private final static Dimension TAILLE_CASE = new Dimension(32,32);
private static final Color YELLOW_TRANSPARENT = new Color(255,255,0,128); // transparence 50%
private static final Color WHITE_TRANSPARENT = new Color(255,255,255,128); // transparence 50%
private final Image imageDeFond;
public DemoPanel() throws IOException {
this.imageDeFond=chargerImage();
setLayout(new GridLayout(0,8));
boolean color=false;
for(int i=1; i<=64; i++) {
add( new Case(String.valueOf(i), color?YELLOW_TRANSPARENT:WHITE_TRANSPARENT));
if ( i%8!=0 ) {
color=!color;
}
}
}
private Image chargerImage() throws IOException {
return ImageIO.read(getClass().getResource("suricate.jpg"));
}
@Override
public void paintComponent(Graphics g) {
g.drawImage( imageDeFond , 0, 0, getWidth(), getHeight(), this);
}
public static class Case extends JPanel {
public Case(String texte, Color color) {
setBackground(color);
GridLayout layout = new GridLayout(1,0);
setLayout(layout);
add(new JLabel(texte, JLabel.CENTER));
}
@Override
public Dimension getPreferredSize() {
return TAILLE_CASE;
}
}
public static void main(String[] args) throws IOException {
JFrame frame = new JFrame("Démo");
JPanel centrage = new JPanel();
centrage.setLayout(new GridBagLayout());
centrage.add(new DemoPanel(), new GridBagConstraints());
frame.setContentPane(centrage);
frame.pack(); // dimensionne automatiquement la frame en fonction du contenu
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
} |
Partager