Java classes? [Résolu/Fermé]

Messages postés
9
Date d'inscription
lundi 21 septembre 2009
Statut
Membre
Dernière intervention
10 décembre 2010
- - Dernière réponse : chuka
Messages postés
969
Date d'inscription
samedi 11 octobre 2008
Statut
Membre
Dernière intervention
29 juillet 2010
- 24 sept. 2009 à 19:44
Hello,

Je sais que Google est mon ami, mais j'ai un probleme de compréhension des classes...

Lorsque je crée une classe main et une classe fenetre, lorsque je compile code, seule la classe de l'onglet actif se lance, pourtant j'ai fait de la classe main une super classe...

Soit j'ai juste le bout de code qui s'affiche en console, soit j'ai la fenêtre...




code classe main:
import java.util.Scanner;


public class main {

/**
* @param args
*/
public static void main(String[] args){
byte nombreDeDoodeVert=4;
byte nombreDedoodeBleu=0;
byte nombreDeDoodeRouge=19;
byte nombreDeDoodeJaune=0;
byte nombreEnnemis=75;
int nombreDeDoode=nombreDeDoodeVert+nombreDedoodeBleu+nombreDeDoodeRouge+nombreDeDoodeJaune;
short doowatt=500;
short nourriture=500; // chercher un autre nom
short geleeNoire; // autre nom
short nombreEnnemisTues=0;
String pseudo;
Scanner sc = new Scanner(System.in);

System.out.println("Choisissez un pseudo: ");
pseudo = sc.nextLine();


while (nombreDeDoodeRouge>15){
nombreEnnemisTues++;
nombreDeDoodeRouge--;
nombreEnnemis--;
}
System.out.print("il y'a " +nombreDeDoodeRouge+ " doodes rouges");
System.out.print("\nil y a " +nombreEnnemis+ " ennemis");
System.out.print("\nTon nom est " +pseudo);
System.out.print("\nTu as tué " +nombreEnnemisTues+ " ennemis");}}






code classe fenetre:

import javax.swing.JFrame;

public class fenetre extends main{

public static void main(String[] args){

JFrame fenetre = new JFrame();
fenetre.setTitle("Doode");
fenetre.setSize(600, 400);
fenetre.setLocationRelativeTo(null);
fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fenetre.setVisible(true);
}
}


Voila, merci...
Afficher la suite 

10 réponses

Messages postés
6941
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1092
0
Merci
Bonjour,

Tu as 2 procédures main() dans ton programme ...

;o)
Messages postés
9
Date d'inscription
lundi 21 septembre 2009
Statut
Membre
Dernière intervention
10 décembre 2010
0
Merci
ho oui, merci :)
Messages postés
9
Date d'inscription
lundi 21 septembre 2009
Statut
Membre
Dernière intervention
10 décembre 2010
0
Merci
Et donc je ne comprend plus rien... Je vous explique, désolé, mais je ne comprend pas du tout...

J'ai toujours codé en procédural et la ça bloque..

Ce code:
import javax.swing.JFrame;

public class fenetre {

public static void main(String[] args){

JFrame fenetre = new JFrame();


fenetre.setTitle("Doode");

fenetre.setSize(800, 600);

fenetre.setLocationRelativeTo(null);

fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

fenetre.setVisible(true);
}
}
Si je le crée dans une classe a part, comment pourrais-je le faire fonctionner dans mon main ?
(Sans tout remmetre bien sur)
Messages postés
969
Date d'inscription
samedi 11 octobre 2008
Statut
Membre
Dernière intervention
29 juillet 2010
362
0
Merci
Salut,
ben tu feras dans ton main:
fenetre f=new fenetre();
mais faut faire un constructeur dans ta class fenetre:
public class fenetre {

public fenetre(){

JFrame fenetre = new JFrame();


fenetre.setTitle("Doode");

fenetre.setSize(800, 600);

fenetre.setLocationRelativeTo(null);

fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

fenetre.setVisible(true);
}
@+
Messages postés
9
Date d'inscription
lundi 21 septembre 2009
Statut
Membre
Dernière intervention
10 décembre 2010
0
Merci
Merci beaucoup, et s'il vous plait, comment utiliser des variables(contenues dans une classe moteur) dans toutes mes classes(main compris)? J'ai bien essayé public ou static mais eclipse me montre ces mots comme une erreur et bug a la compilation...

Désolé encore de vous embeter =)
Messages postés
969
Date d'inscription
samedi 11 octobre 2008
Statut
Membre
Dernière intervention
29 juillet 2010
362
0
Merci
Salut,
un petit exemple:
Ta classe moteur possede 2 variable: une marque de type string,et son nombre de chevaux fiscaux
public class moteur{
private String marque;
private int nbChv;
public moteur() //constructeur par defaut
{
marque="";
nbChv=0;
}
public moteur(String marque,int nbChv)
{
this.marque=marque;
this.nbChv=nbChv;
}
public String getMarque()
{
return marque;
}
public int getnbChv()
{
return nbChv;
}
public void SetMarque(String Marque)
{
this.marque=Marque;
}
public void SetnbChv(Int Chv)
{
this.nbChv=Chv;
}
//Apres dans ton main, tu vas donc instancier un objet moteur:
moteur m=new moteur("Peugeot",4);
int nbch=m.getnbChv();
//Sinon tu peux declarer public marque et nbChv..
public class moteur{
public String marque;
public int nbChv;
public moteur() //constructeur par defaut
{
marque="";
nbChv=0;
}
public moteur(String marque,int nbChv)
{
this.marque=marque;
this.nbChv=nbChv;
}
//Apres dans ton main, tu vas donc instancier un objet moteur:
moteur m=new moteur("Peugeot",4);
int nbch=m.nbChv;
Et puis n'oubli pas de mettre le package dans l'entete des import!!!!
J'espere ca pourra t'aider!!
@+
Messages postés
9
Date d'inscription
lundi 21 septembre 2009
Statut
Membre
Dernière intervention
10 décembre 2010
0
Merci
Huhu, hugo est de retour avec ses questions chiantes ...

Voila voila, j'ai une classe fenêtre qui affiche un Jframe parfaitement et une classe ButtonFrame(avec JButton) qui affiche un bouton dans une deuxième fenêtre !! Comment insérer ce bouton dans la fenêtre principale ?

Code fenetre:

import javax.swing.*;

public class fenetre {



public fenetre(){
JFrame fenetre = new JFrame();


fenetre.setTitle("Doode");

fenetre.setSize(800, 600);

fenetre.setLocationRelativeTo(null);

fenetre.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

fenetre.setVisible(true);
}}

Code ButtonFrame:

import javax.swing.*;

public class ButtonFrame extends JFrame {
JButton play = new JButton("PLay");

public ButtonFrame() {
super("Button Frame");
setSize(80, 170);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
JPanel pane = new JPanel();
pane.add(play);
add(pane);
setVisible(true);
}

}
Messages postés
969
Date d'inscription
samedi 11 octobre 2008
Statut
Membre
Dernière intervention
29 juillet 2010
362
0
Merci
Salut,
voila un exemple de cours:
public class Appli {
JFrame fenetre ;
JButton jbAffiche;
JButton jbFerme;
JTextField jtfSaisie;
public Appli(String titre) {
fenetre = new JFrame(titre);
Container contenu =
fenetre.getContentPane();
JPanel panneauBtn = new JPanel();
jbAffiche = new JButton("Afficher");
jbFerme = new JButton("Ferme");
jtfSaisie = new JTextField();
panneauBtn.add(jbAffiche);
panneauBtn.add(jbFerme);
contenu.setLayout(new GridLayout(2,1));
contenu.add(jtfSaisie);
contenu.add(panneauBtn);
fenetre.pack();
fenetre.setVisible(true);
}
public static void main(String[] args) {
Appli appli= new Appli("Test IHM Java");
System.out.println("Hello");
}
}
En gros faut que tu crees un container, qui contiendra tes Jpanel (qui contiennent tes elements que tu dispose grace à un Layout!!)
J'espere ca pourra t'aider!!
@+
Messages postés
9
Date d'inscription
lundi 21 septembre 2009
Statut
Membre
Dernière intervention
10 décembre 2010
0
Merci
Merci vraiment chuka pour tes réponses !

j'ai tenté d'afficher un fond d'écran pour mon programme a l'aide d'un tutoriel mais cela ne m'affiche rien...

classe fenetre:

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


public class fenetre extends Background{
JFrame fenetre ;
JButton jbPLay;
JButton jbClose;
JLabel label;
public fenetre(String titre) {
fenetre = new JFrame(titre);
Container contenu =
fenetre.getContentPane();
JPanel Button = new JPanel();
jbPLay = new JButton("Jouer");
jbClose = new JButton("Quitter");
contenu.add(Button);
Button.add(jbPLay);
Button.add(jbClose);
fenetre.setVisible(true);
fenetre.pack();
}

Image img = Toolkit.getDefaultToolkit().createImage("background.gif"); //debut chargement image

public void paint(Graphics g)
{
// Draw the previously loaded image to Component.
g.drawImage(img, 0, 0, null);

// Draw sprites, and other things.
// ....
}

}

Classe Background:

import java.awt.*;

class Background extends Panel
{
// The Image to store the background image in.
Image img;

public Background(){

// Loads the background image and stores in img object.
img = Toolkit.getDefaultToolkit().createImage("background.gif");
}

public void paint(Graphics g)
{
// Draws the img to the BackgroundPanel.
g.drawImage(img, 50, 50, null);
}
}
Messages postés
969
Date d'inscription
samedi 11 octobre 2008
Statut
Membre
Dernière intervention
29 juillet 2010
362
0
Merci
Salut,
J'utilise pas assez les librairies Java pour t'aider sur ce point....
Mais regarde ce lien!!
Peut-etre il pourra t'aider!!
http://www.java-forums.org/awt-swing/2072-background-image-java.html
@+