import java.awt.BorderLayout; import java.awt.Color; import java.awt.Cursor; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Image; import java.awt.Point; import java.awt.RenderingHints; import javax.imageio.ImageIO; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.plaf.ButtonUI; import javax.swing.plaf.metal.MetalButtonUI; import java.awt.Container; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; public class GameInterface extends JFrame implements ActionListener{ private JButton buttonMenu; private JButton buttonCard; private JButton buttonAction; private int WIDTH; private int HEIGTH; private int width = 100; private int heigth = 100; public GameInterface(){ Dimension tailleEcran = java.awt.Toolkit.getDefaultToolkit().getScreenSize(); int HEIGTH = (int)tailleEcran.getHeight() -100; int WIDTH = (int)tailleEcran.getWidth() -200; JFrame risk = new JFrame("Risk for dummies"); risk.setVisible(true); risk.setSize(WIDTH,HEIGTH); risk.setLocationRelativeTo(null); risk.setResizable(false); risk.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container cp = risk.getContentPane(); JPanel mainpanel = (JPanel)cp; mainpanel.setBackground(Color.WHITE); mainpanel.setLayout(null); /* Affichage de la carte */ JPanel panelmap = new JPanel(){ private static final long serialVersionUID = 1L; public void paint(Graphics g) { try { BufferedImage image = ImageIO.read(new File("bin/res/luca_pic.jpg")); BufferedImage goodImage = scale(image,1.2); int w = goodImage.getWidth(); int h = goodImage.getHeight(); g.drawImage(goodImage, (getWidth()-w)/2, (getHeight()-h)/2, null); g.dispose(); } catch (IOException e) { e.printStackTrace(); } } }; panelmap.setPreferredSize(new Dimension(WIDTH, HEIGTH)); panelmap.setBounds(0, 0, WIDTH, HEIGTH-150); mainpanel.add(panelmap); mainpanel.setBackground(Color.lightGray); //new ModifMousse(panel,"saberred.gif",new Point(15,15)); JPanel panelmenu = new JPanel(); panelmenu.setBounds(0, HEIGTH-150, WIDTH, 150); panelmenu.setLayout(null); //panelmenu.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); mainpanel.add(panelmenu); /* * ------------------------------------------------------------------------------------- * Panel superieur * ------------------------------------------------------------------------------------ */ Continent Asia = new Continent("Asia",7,Color.green); Country China = new Country(1,"China",Asia, 400,400); CountryButton china = new CountryButton(China); mainpanel.add(china); /* * ------------------------------------------------------------------------------------ * Barre d'outil inferieur * ------------------------------------------------------------------------------------ */ JLabel label = new JLabel("L'équipe de Risk for dummies vous souhaite un bon jeu"); label.setBounds(3*width, 10, WIDTH, heigth); panelmenu.add(label); //buttonMenu = new JButton("Menu"); buttonMenu = new RoundButton(new ImageIcon("bin/res/headshot3.png")); buttonMenu.setBounds(10, 10, 100,100); buttonMenu.setForeground(Color.blue); buttonMenu.setFocusPainted(false); buttonMenu.setBorderPainted(false); buttonMenu.setContentAreaFilled(false); buttonMenu.setBackground(Color.blue); buttonMenu.addActionListener(this); buttonMenu.setToolTipText("Accedez au menu du jeu"); //buttonMenu.setIcon(new ImageIcon("bin/res/bicho0.gif")); panelmenu.add(buttonMenu); //buttonCard = new DemoButton("Cartes",Color.blue,0,0,60,60); //buttonCard.setBounds(20+width, 10, width, heigth); //buttonCard.setFocusPainted(false); //buttonCard.setContentAreaFilled(true); //buttonCard.setBackground(Color.cyan); buttonCard.addActionListener(this); panelmenu.add(buttonCard); buttonAction = new JButton("Action"); buttonAction.setBounds(WIDTH-width-10, 10, width, heigth); buttonAction.setFocusPainted(false); buttonAction.setContentAreaFilled(false); buttonAction.addActionListener(this); panelmenu.add(buttonAction); /* button.setIcon( new ImageIcon( button1 ) ); button.setSelectedIcon( button.getIcon()); button.setRolloverIcon( new ImageIcon( button2 ) ); button.setPressedIcon( new ImageIcon( button3 ) );*/ } public static void main(String[] args){ GameInterface game = new GameInterface(); } /** * Redimensionnement de l'image. * @param BufferedImage original : image d'origine * @param Double scaleValue : coefficient de redimensionnement * @return Image redimensionnée */ public static BufferedImage scale(BufferedImage original, double scaleValue) { int width = (int) (original.getWidth() * scaleValue); int height = (int) (original.getHeight() * scaleValue); BufferedImage goodDimension = new BufferedImage( width, height,original.getType()); Graphics2D graphics = goodDimension.createGraphics(); graphics.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF); graphics.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_NEAREST_NEIGHBOR); graphics.drawImage(original, 0, 0, width, height, null); graphics.dispose(); return goodDimension; } @Override public void actionPerformed(ActionEvent e) { Object source = e.getSource(); if(source == buttonMenu){ System.out.println("Vous avez cliqué sur menu."); } else{ if(source == buttonCard){ System.out.println("Vous avez cliqué sur cartes."); }else{ if(source==buttonAction){ } } } } }