CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Java Tron

stalkyce98
stalkyce98
Niveau 2
14 mai 2018 à 18:57:40

Bonjour, bonsoir à tous.

J'ai un grand besoin d'aide.

Je suis actuellement en train de faire un jeu "Tron" pour mon cours de programmation, mais je galère pas mal. Notamment car le code vient d'internet et que je n'ai fait que repasser par dessus pour simplifier et modifier.

Je vous mets donc le code ici qui se décompose en 5 classes que je vous mets à la fin.

"Menu" créant un menu
"MenuJoueur" pour le nombre de joueur
"yourclass" gerant les mouvements et les collisions
"Core" et "ScreenManager" quand à eux gere des choses que j'ai du mal à comprendre.

Voici mes questions :

  1. En lançant le jeu via le menu, aucune touche ne fonctionne. Est-il possible de m'aider à trouver d'ou vient le problème ?
  2. Le code étant en parti récupéré sur Internet, je ne comprends pas tout. Quelqu'un pourrait donc m'aider et m'expliquer la classe "Core" et "ScreenManager" ainsi que fonctionnement de la méthode "KeyPressed" ?

Merci donc à ceux qui accepteront de prendre leur temps pou m'aider.

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

public class Menu extends JFrame implements ActionListener{
private JFrame jfbase ;
private JFrame jfnbplayeur ;
private MenuJoueur mj;

public Menu(){
jfbase = new JFrame ("Menu du jeu");

JPanel jp =new JPanel();
jp.setBackground(Color.BLACK);
jp.setPreferredSize(new Dimension (280,320));
JButton jbstart = new JButton("Start");
jbstart.addActionListener(this);
jp.add(jbstart);
JButton jbexit = new JButton("Exit");
jbexit.addActionListener(this);
jp.add(jbexit);

jfbase.setContentPane(jp);//change le panneau de contenu
jfbase.pack();//réglage de la taille par le contenu
jfbase.setVisible(true);
}

public void actionPerformed(ActionEvent ae){
JButton jb = (JButton)ae.getSource();
if(jb.getText().equals("Start")){
mj = new MenuJoueur();
jfbase.dispose();
}
else if(jb.getText().equals("Exit")){
System.exit(0);
}
}
}

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

public class MenuJoueur extends JFrame implements ActionListener{
private JFrame jfbase ;
private JFrame jfnbplayeur ;
private Menu mn;
private yourclass yc;

public MenuJoueur(){
jfnbplayeur = new JFrame ("Nombre de joueur");

JPanel jp =new JPanel();
jp.setPreferredSize(new Dimension (165,130));
JButton jbdeux =new JButton("Deux Joueur");
jbdeux.addActionListener(this);
jp.add(jbdeux);
JButton jbtrois =new JButton("Trois joueurs (en DLC)");
jbtrois.addActionListener(this);
jp.add(jbtrois);
JButton jbquatre =new JButton("Quatre joueurs (en DLC)");
jbquatre.addActionListener(this);
jp.add(jbquatre);
JButton jbannuler =new JButton("Annuler");
jbannuler.addActionListener(this);
jp.add(jbannuler);

jfnbplayeur.setContentPane(jp);//change le panneau de contenu
jfnbplayeur.pack();//réglage de la taille par le contenu
jfnbplayeur.setVisible(true);
}

public void actionPerformed(ActionEvent ae){
JButton jb = (JButton)ae.getSource();
if(jb.getText().equals("Deux Joueur")){
new yourclass().run();
jfbase.dispose();
}
else if(jb.getText().equals("Trois joueurs")){

jfbase.dispose();
}
else if(jb.getText().equals("Quatre joueurs")){

jfbase.dispose();
}
else if(jb.getText().equals("Annuler")){
mn = new Menu() ;
jfbase.dispose();
}
}
}

YourClass
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.Stroke;
import java.awt.Window;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.util.ArrayList;
import javax.swing.* ;
import java.awt.* ;
import java.awt.event.*;

public class yourclass extends Core implements KeyListener, MouseListener,
MouseMotionListener, ActionListener {
int centrex1 = 0;
int centrey1 = 500;
int centrex2 = 1700;
int centrey2 = 500;
int currentDirection1 = 1;
int currentDirection2 = 3;
int moveAmount = 5;
ArrayList<Integer> pathx1 = new ArrayList();
ArrayList<Integer> pathy1 = new ArrayList();
ArrayList<Integer> pathx2 = new ArrayList();
ArrayList<Integer> pathy2 = new ArrayList();
private JFrame jffinpartie;
// private JFrame jffinpartie2;
// private JFrame jffinpartie3;

public void init() {
super.init();

Window w = sm.getFullScreenWindow();
w.addKeyListener(this);
w.addMouseListener(this);
w.addMouseMotionListener(this);
}

public static void main(String[] args) {
new yourclass().run();
}

public void draw(Graphics2D g) {
switch(currentDirection1){
case 0:
if (centrey1>0){
centrey1-=moveAmount;
} else {
centrey1 = sm.getHeight();
}
break;
case 1:
if (centrex1 < sm.getWidth()){
centrex1+=moveAmount;
} else {
centrex1 = 0;
}
break;
case 2:
if (centrey1 < sm.getHeight()){
centrey1+=moveAmount;
} else {
centrey1 = 0;
}
break;
case 3:
if (centrex1>0){
centrex1-=moveAmount;
} else {
centrex1 = sm.getWidth();
}
break;
}
switch(currentDirection2){
case 0:
if (centrey2>0){
centrey2-=moveAmount;
} else {
centrey2 = sm.getHeight();
}
break;
case 1:
if (centrex2 < sm.getWidth()){
centrex2+=moveAmount;
} else {
centrex2 = 0;
}
break;
case 2:
if (centrey2 < sm.getHeight()){
centrey2+=moveAmount;
} else {
centrey2 = 0;
}
break;
case 3:
if (centrex2>0){
centrex2-=moveAmount;
} else {
centrex2 = sm.getWidth();
}
break;
}

if ((centrex1 == centrex2) && (centrey1 == centrey2) ) {
finPartie("Ex-aequo");

}

for (int x = 0;x<pathx1.size();x++){
if (((centrex1 == pathx1.get(x)) && (centrey1 == pathy1.get(x))) || ((centrex1 == pathx2.get(x)) && (centrey1 == pathy2.get(x)))) {
finPartie("rouge");

}

if (((centrex2 == pathx2.get(x)) && (centrey2 == pathy2.get(x))) || ((centrex2 == pathx1.get(x)) && (centrey2 == pathy1.get(x)))){
finPartie("bleu");

}
}
pathx1.add(centrex1);
pathy1.add(centrey1);
pathx2.add(centrex2);
pathy2.add(centrey2);
g.setColor(Color.BLACK);
g.fillRect(0, 0, sm.getWidth(), sm.getHeight());
for (int x = 0;x<pathx1.size();x++){
g.setColor(Color.blue);
g.fillRect(pathx1.get(x), pathy1.get(x), 10, 10);
g.setColor(Color.red);
g.fillRect(pathx2.get(x), pathy2.get(x), 10, 10);
}

}//fin draw

public void finPartie(String s){
this.stop();
jffinpartie = new JFrame (s);

JPanel jp =new JPanel();
jp.setPreferredSize(new Dimension (165,130));
JButton jbnewgame =new JButton("Nouvelle partie");
jbnewgame.addActionListener(this);
jp.add(jbnewgame);
JButton jbendgame =new JButton("Menu");
jbendgame.addActionListener(this);
jp.add(jbendgame);

jffinpartie.setContentPane(jp);//change le panneau de contenu
jffinpartie.pack();//réglage de la taille par le contenu
jffinpartie.setVisible(true);

}

public void actionPerformed(ActionEvent ae){
JButton jb = (JButton)ae.getSource();
if(jb.getText().equals("Nouvelle partie")){
new yourclass().run();
jffinpartie.dispose();
}
else if(jb.getText().equals("Menu")){
new Menu();
jffinpartie.dispose();
}

}

public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_UP) {
if (currentDirection2 != 2){
currentDirection2 = 0;
}
} else if (e.getKeyCode() == KeyEvent.VK_DOWN) {
if (currentDirection2 != 0){
currentDirection2 = 2;
}
} else if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
if (currentDirection2 != 3){
currentDirection2 = 1;
}
} else if (e.getKeyCode() == KeyEvent.VK_LEFT) {
if (currentDirection2 != 1){
currentDirection2 = 3;
}
}
if (e.getKeyCode() == KeyEvent.VK_Z){
if (currentDirection1 != 2){
currentDirection1 = 0;
}
} else if (e.getKeyCode() == KeyEvent.VK_S) {
if (currentDirection1 != 0){
currentDirection1 = 2;
}
} else if (e.getKeyCode() == KeyEvent.VK_D) {
if (currentDirection1 != 3){
currentDirection1 = 1;
}
} else if (e.getKeyCode() == KeyEvent.VK_Q) {
if (currentDirection1 != 1){
currentDirection1 = 3;
}
}
}

public void keyReleased(KeyEvent e) {

}

public void keyTyped(KeyEvent arg0) {

}

public void mouseClicked(MouseEvent e) {

}

public void mouseEntered(MouseEvent arg0) {
}

public void mouseExited(MouseEvent arg0) {
}

public void mousePressed(MouseEvent e) {
}

public void mouseReleased(MouseEvent e) {
}

public void mouseDragged(MouseEvent e) {

}

public void mouseMoved(MouseEvent e) {

}
}

Core
import java.awt.*;
import java.awt.image.BufferedImage;

public abstract class Core {

private static final DisplayMode modes[] =
{
//new DisplayMode(1920,1080,32,0),
new DisplayMode(1680,1050,32,0),
//new DisplayMode(1280,1024,32,0),
new DisplayMode(800,600,32,0),
new DisplayMode(800,600,24,0),
new DisplayMode(800,600,16,0),
new DisplayMode(640,480,32,0),
new DisplayMode(640,480,24,0),
new DisplayMode(640,480,16,0),
};
private boolean running;
protected ScreenManager sm;

public void stop(){
running = false;
}

public void run(){
try{
init();
gameLoop();
}finally{
sm.restoreScreen();
}
}

public void init(){
sm = new ScreenManager();
DisplayMode dm = sm.findFirstCompatibaleMode(modes);
sm.setFullScreen(dm);
Window w = sm.getFullScreenWindow();
w.setFont(new Font("Arial",Font.PLAIN,20));
w.setBackground(Color.WHITE);
w.setForeground(Color.RED);
w.setCursor(w.getToolkit().createCustomCursor(new BufferedImage(3, 3, BufferedImage.TYPE_INT_ARGB), new Point(0, 0),"null"));
running = true;
}

public void gameLoop(){
long startTime = System.currentTimeMillis();
long cumTime = startTime;

while (running){
long timePassed = System.currentTimeMillis()-cumTime;
cumTime+= timePassed;
update(timePassed);
Graphics2D g = sm.getGraphics();
draw(g);
g.dispose();
sm.update();

try{
Thread.sleep(20);
}catch(Exception ex){}
}
}

public void update(long timePassed){}

public abstract void draw(Graphics2D g);

}

ScreenManager
import java.awt.*;
import java.awt.image.BufferStrategy;
import java.awt.image.BufferedImage;
import javax.swing.JFrame;

public class ScreenManager {

private GraphicsDevice vc;

public ScreenManager(){
GraphicsEnvironment e = GraphicsEnvironment.getLocalGraphicsEnvironment();
vc = e.getDefaultScreenDevice();
}

public DisplayMode[] getCompatibleDisplayModes(){
return vc.getDisplayModes();
}

public DisplayMode findFirstCompatibaleMode(DisplayMode[] modes){

DisplayMode goodModes[] = vc.getDisplayModes();
for(int x = 0; x<modes.length;x++){
for(int y = 0;y<goodModes.length;y++){
if(displayModesMatch(modes[x],goodModes[y])){
return modes[x];
}
}
}
return null;
}

public DisplayMode getCurrentDM(){
return vc.getDisplayMode();
}

public boolean displayModesMatch(DisplayMode m1, DisplayMode m2){
if(m1.getWidth() != m2.getWidth() || m1.getHeight() != m2.getHeight()){
return false;
}
if(m1.getBitDepth() != DisplayMode.BIT_DEPTH_MULTI && m2.getBitDepth() != DisplayMode.BIT_DEPTH_MULTI && m1.getBitDepth() != m2.getBitDepth()){
return false;
}
if(m1.getRefreshRate() != DisplayMode.REFRESH_RATE_UNKNOWN && m2.getRefreshRate() != DisplayMode.REFRESH_RATE_UNKNOWN && m1.getRefreshRate() != m2.getRefreshRate()){
return false;
}
return true;
}

public void setFullScreen(DisplayMode dm){
JFrame f = new JFrame();
f.setUndecorated(true);
f.setIgnoreRepaint(true);
f.setResizable(false);
vc.setFullScreenWindow(f);

if(dm != null && vc.isDisplayChangeSupported()){
try{
vc.setDisplayMode(dm);
}catch(Exception ex){}
f.createBufferStrategy(2);
}
}

public Graphics2D getGraphics(){
Window w = vc.getFullScreenWindow();
if(w != null){
BufferStrategy bs = w.getBufferStrategy();
return (Graphics2D)bs.getDrawGraphics();
}
else{
return null;
}
}

public void update(){
Window w = vc.getFullScreenWindow();
if(w != null){
BufferStrategy bs = w.getBufferStrategy();
if(!bs.contentsLost()){
bs.show();
}
}
}

public Window getFullScreenWindow(){
return vc.getFullScreenWindow();
}

public int getWidth(){
Window w = vc.getFullScreenWindow();
if(w != null){
return w.getWidth();
}else{
return 0;
}
}

public int getHeight(){
Window w = vc.getFullScreenWindow();
if(w != null){
return w.getHeight();
}else{
return 0;
}
}

public void restoreScreen(){
Window w = vc.getFullScreenWindow();
if(w != null){
w.dispose();
}
vc.setFullScreenWindow(null);
}

public BufferedImage createCompatibaleimage(int w, int h, int t){
Window win = vc.getFullScreenWindow();
if(win != null){
GraphicsConfiguration gc = win.getGraphicsConfiguration();
return gc.createCompatibleImage(w,h,t);
}else{
return null;
}

}

}

Bunyan
Bunyan
Niveau 17
14 mai 2018 à 21:20:22

Même en t'expliquant, une classe appelée "YourClass" dans un projet, c'est une certitude que le code est repompé (ou viens à minima d'un tutoriel que l'apprenant à suivi sans vraiment comprendre ce qu'il faisait).
Change au moins ça (avec l'outil "refactorisation" de ton IDE pour éviter que tu le fasses à la main).

Pour KeyPressed, je te conseillerai de te renseigner sur la programmation évènementielle (en très bref : réagir à un évènement). Il y a pas mal de documentation pour le Java pour ça.
Les deux classes Core et ScreenManager ne sont pas conséquentes. En une demi-journée en recherchant et lisant la documentation tu pourras comprendre toi-même ce qu'elles font.

Nota : pense à utiliser les balises <code> la prochaine fois, ou un service externe de mise en forme de code comme pastebin par exemple.

stalkyce98
stalkyce98
Niveau 2
15 mai 2018 à 07:53:53

Bien, merci pour cette réponse rapide.

Je retiens donc "programmation événementielle"

Quand au classe "Core" et "ScreenManager" même notre prof n'as pas su nous expliquer, j'ai donc légèrement paniqué en me disant j'etais mal.

PS : premier message sur les forums, j'apprends encore. Je mettrais les bonnes balises pour la prochaine fois.

Bunyan
Bunyan
Niveau 17
16 mai 2018 à 14:46:45

Ces deux classes ne sont pas vraiment complexes, mais se réfèrent lourdement à awt et swing, qui sont les moteurs historiques de graphismes en Java (et qui sont dépassés, si l'on compare à ce qui se fait ailleurs).
Ce n'est pas vraiment ce que l'on apprend, mais elles ne sont pas extrêmement complexes. Je viens de les relire, au cas où, et je n'y discerne pas de difficultés (je n'irai pas jusqu'à dire que je comprends chaque ligne, mais je comprends ce qu'elles font).
De ce fait, je pense qu'en prenant un peu de temps, en les lisant avec al documentation (ou un simple dico d'anglais), il est possible de les comprendre.
La seule subtilité viendrait, pour moi, de "game loop" qui demande la connaissance de ce mécanisme (qui porte le même nom).

stalkyce98
stalkyce98
Niveau 2
10 juin 2018 à 15:33:48

Bon, je redemande un coup de main. J'ai passé je ne sais pas combien d'heures sur internet, mais je n'y arrive pas. J'ai besoin d'explications pour Screen Manager. Je demande juste une petite explication d'une phrase pour chaque méthode, pas plus.
"cette méthode fait ceci grâce à cela." C'est tout ce dont j'ai besoin

Merci d'avance à ceux qui voudront bien me répondre.

godrik
godrik
Niveau 30
10 juin 2018 à 18:45:13

Je te conseille plutot d'apprendre a ecrire le code toi meme, plutot que copier du code en ligne et de masquer ta triche. C'est plus honete, et tu pourrais apprendre quelque chose en passant.

stalkyce98
stalkyce98
Niveau 2
10 juin 2018 à 23:01:20

Mon prof sait sue le code vient d'Internet et ça le dérange pas tant que je peux expliquer. Et après un week-end à me tirer les cheveux sur internet a lire des explications sur des forum, regarder des vidéos et autres mais n'arriver à rien, je demande un seul petit coup de pouce, rien d'autres. Pour le reste, je suis repassé sur le code et j'ai modifier des choses et j'ai ajouté beaucoup, donc je n'ai fait que prendre des bases pour reconstruire dessus.

Après, je ne pense pas que j'en demande beaucoup. Juste une petite phrase d'explication, pas plus.

Alors, désolé si je parais sec et désagréable, mais je suis vraiment au fond du gouffre et j'ai plus le temps de modifier mon code. J'ai vraiment besoin d'un dernier coup de pouce pour que je puisse finaliser mon projet et pouvoir passer à la phase suivante

Bunyan
Bunyan
Niveau 17
11 juin 2018 à 11:40:07

Je ne comprends absolument pas comment cela peut t'aider, mais voici :

import java.awt.*;
import java.awt.image.BufferStrategy;
import java.awt.image.BufferedImage;
import javax.swing.JFrame;

public class ScreenManager {

	// https://docs.oracle.com/javase/7/docs/api/java/awt/GraphicsDevice.html
	private GraphicsDevice vc;

	// Constructeur par défaut
	public ScreenManager(){
		GraphicsEnvironment e = GraphicsEnvironment.getLocalGraphicsEnvironment();
		vc = e.getDefaultScreenDevice();
	}

	// Retourne les https://docs.oracle.com/javase/7/docs/api/java/awt/DisplayMode.html compatibles
	public DisplayMode[] getCompatibleDisplayModes(){
		return vc.getDisplayModes();
	}

	// Cherche le premier https://docs.oracle.com/javase/7/docs/api/java/awt/DisplayMode.html compatible, null sinon
	public DisplayMode findFirstCompatibaleMode(DisplayMode[] modes){
		DisplayMode goodModes[] = vc.getDisplayModes();
		for(int x = 0; x<modes.length;x++){
			for(int y = 0;y<goodModes.length;y++){
			if(displayModesMatch(modes[x],goodModes[y])){
				return modes[x];
				}
			}
		}
		return null;
	}

	// Retourne le https://docs.oracle.com/javase/7/docs/api/java/awt/DisplayMode.html courant
	public DisplayMode getCurrentDM(){
		return vc.getDisplayMode();
	}

	// Vérifie que les deux https://docs.oracle.com/javase/7/docs/api/java/awt/DisplayMode.html passées matchent
	public boolean displayModesMatch(DisplayMode m1, DisplayMode m2){
		if(m1.getWidth() != m2.getWidth() || m1.getHeight() != m2.getHeight()){
			return false;
		}
		if(m1.getBitDepth() != DisplayMode.BIT_DEPTH_MULTI && m2.getBitDepth() != DisplayMode.BIT_DEPTH_MULTI && m1.getBitDepth() != m2.getBitDepth()){
			return false;
		}
		if(m1.getRefreshRate() != DisplayMode.REFRESH_RATE_UNKNOWN && m2.getRefreshRate() != DisplayMode.REFRESH_RATE_UNKNOWN && m1.getRefreshRate() != m2.getRefreshRate()){
			return false;
		}
		return true;
	}

	// Passe le https://docs.oracle.com/javase/7/docs/api/java/awt/DisplayMode.html en plein écran via un JFrame
	public void setFullScreen(DisplayMode dm){
		JFrame f = new JFrame();
		f.setUndecorated(true);
		f.setIgnoreRepaint(true);
		f.setResizable(false);
		vc.setFullScreenWindow(f);

		if(dm != null && vc.isDisplayChangeSupported()){
			try{
				vc.setDisplayMode(dm);
			}catch(Exception ex){}
				f.createBufferStrategy(2);
		}
	}

	// Choppe le https://docs.oracle.com/javase/7/docs/api/java/awt/Graphics2D.html courant
	public Graphics2D getGraphics(){
		Window w = vc.getFullScreenWindow();
		if(w != null){
			BufferStrategy bs = w.getBufferStrategy();
			return (Graphics2D)bs.getDrawGraphics();
		}
		else{
			return null;
		}
	}

	// Met à jour l'écran
	public void update(){
		Window w = vc.getFullScreenWindow();
		if(w != null){
			BufferStrategy bs = w.getBufferStrategy();
			if(!bs.contentsLost()){
				bs.show();
			}
		}
	}

	// Retourne la https://docs.oracle.com/javase/7/docs/api/java/awt/Window.html plein écran
	public Window getFullScreenWindow(){
		return vc.getFullScreenWindow();
	}

	// Retourne la largeur de la https://docs.oracle.com/javase/7/docs/api/java/awt/Window.html utilisée par l'application
	public int getWidth(){
		Window w = vc.getFullScreenWindow();
		if(w != null){
			return w.getWidth();
		}else{
			return 0;
		}
	}

	// Retourne la hauteur de la https://docs.oracle.com/javase/7/docs/api/java/awt/Window.html utilisée par l'application
	public int getHeight(){
		Window w = vc.getFullScreenWindow();
		if(w != null){
			return w.getHeight();
		}else{
			return 0;
		}
	}

	// Réinitialise la https://docs.oracle.com/javase/7/docs/api/java/awt/Window.html utilisée
	public void restoreScreen(){
		Window w = vc.getFullScreenWindow();
		if(w != null){
			w.dispose();
		}
		vc.setFullScreenWindow(null);
	}

	// Crée une image compatible pour la https://docs.oracle.com/javase/7/docs/api/java/awt/Window.html utilisée
	public BufferedImage createCompatibaleimage(int w, int h, int t){
		Window win = vc.getFullScreenWindow();
		if(win != null){
			GraphicsConfiguration gc = win.getGraphicsConfiguration();
			return gc.createCompatibleImage(w,h,t);
		}else{
			return null;
		}
	}
}

Tu noteras que je n'ai fait que traduire les noms des méthodes et mettre les liens JavaDoc (en somme : ce que je t'avais dit de faire).

stalkyce98
stalkyce98
Niveau 2
11 juin 2018 à 12:37:23

Merci, c'est deja une base pour m'aider à trouver et comprendre. Je ne demande pas vraiment plus comme aide. Je regarde ça des que je peux et je repasse si il me manque quelque chose.

Bunyan
Bunyan
Niveau 17
11 juin 2018 à 15:08:53

Mais... si ça te suffit... tu avais déjà cette aide toi-même.
Je n'ai réellement strictement rien fait que traduire le nom des méthodes et te mettre les liens JavaDoc...

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment