Java classes?

Résolu/Fermé
hug0x Messages postés 9 Date d'inscription lundi 21 septembre 2009 Statut Membre Dernière intervention 10 décembre 2010 - 21 sept. 2009 à 22:04
chuka Messages postés 965 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...
A voir également:

10 réponses

Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
21 sept. 2009 à 22:19
Bonjour,

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

;o)
0
hug0x Messages postés 9 Date d'inscription lundi 21 septembre 2009 Statut Membre Dernière intervention 10 décembre 2010
22 sept. 2009 à 06:42
ho oui, merci :)
0
hug0x Messages postés 9 Date d'inscription lundi 21 septembre 2009 Statut Membre Dernière intervention 10 décembre 2010
22 sept. 2009 à 18:33
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)
0
chuka Messages postés 965 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 378
22 sept. 2009 à 18:58
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);
}
@+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
hug0x Messages postés 9 Date d'inscription lundi 21 septembre 2009 Statut Membre Dernière intervention 10 décembre 2010
22 sept. 2009 à 19:18
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 =)
0
chuka Messages postés 965 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 378
22 sept. 2009 à 19:30
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!!
@+
0
hug0x Messages postés 9 Date d'inscription lundi 21 septembre 2009 Statut Membre Dernière intervention 10 décembre 2010
23 sept. 2009 à 17:09
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);
}

}
0
chuka Messages postés 965 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 378
23 sept. 2009 à 18:58
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!!
@+
0
hug0x Messages postés 9 Date d'inscription lundi 21 septembre 2009 Statut Membre Dernière intervention 10 décembre 2010
24 sept. 2009 à 18:45
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);
}
}
0
chuka Messages postés 965 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 378
24 sept. 2009 à 19:44
Salut,
J'utilise pas assez les librairies Java pour t'aider sur ce point....
Mais regarde ce lien!!
Peut-etre il pourra t'aider!!
https://www.java-forums.org/awt-swing/2072-background-image-java.html
@+
0