begin process at 2010 02 10 08:04:43
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Java

 > 

Archives

 > 

Au secours

 > 

interface graphique java


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

interface graphique java

jeudi 15 avril 2004 à 19:11:11 | interface graphique java

Syl20estbon


Bonjour,
Voila j'ai un double probleme:

en fait je voudrais récuperer un evenement souris donc a l'interieur de la classe qui fait le dessin j'ai mis une classe qui herite de MouseAdapter avec une methode mouseClicked qui fait apparaitre une nouvelle JFrame seulement quand je clique il y a plein de fenetres qui apparaissent.
Est-ce que ca ne serait pas du a la methode paintComponent(Graphics g) ?
De plus je n'arrive pas a recuperer les coordonnées de la souris lors du clic.

merci de votre aide
jeudi 15 avril 2004 à 19:36:30 | Re : interface graphique java

JBAware


JB@WAre
sans le code je vois mal comment t'aider
jeudi 15 avril 2004 à 20:53:15 | Re : interface graphique java

Syl20estbon

voila le code de la partie executable :


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

public class TestMap{

static JFrame fenetre = new JFrame("essai de carte");

public static void main(String[] args){

Toolkit kit = Toolkit.getDefaultToolkit();
Dimension ecran =kit.getScreenSize();
fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fenetre.setSize((int)ecran.getWidth(),(int)ecran.getHeight()-33);
JMenuBar menu = new JMenuBar();
JMenu file = new JMenu("Files");
JMenuItem nouveau = new JMenuItem("new");
menu.add(file);
file.add(nouveau);
fenetre.setJMenuBar(menu);
//fenetre.getContentPane().add(menu);
JTabbedPane choix = new JTabbedPane();
Map carte=new Map("cala",0,false);
carte.acquisition();
fenetre.getContentPane().add(choix);
choix.add("Jour",carte);
Map carte2 = new Map("cala",1,false);
carte2.acquisition();
choix.add("Nuit",carte2);
fenetre.show();
}

}


et voila le code de la partie qui affiche


import java.awt.*;
import javax.swing.*;
import java.awt.geom.*;
import java.util.*;
import java.awt.event.*;

public class Map extends JPanel{
public static final int LON = 1016;
public static final int LAR = 648;
private String nomCarte;
private Vector[] dessiner;
private int jour;
private CreerCarte map;
private Vector moyenne = new Vector();
private int debut;
private int fin;
boolean zoom;
private Vector[] pos = new Vector[6];

Map(String nomCarte,int jour,boolean zoom){
this.nomCarte=nomCarte;
//this.periode=periode;
this.jour=jour;
this.zoom=zoom;
this.debut=0;
this.fin=6;
}

Map(String nomCarte,int jour,boolean zoom,int debut,int fin){
this.nomCarte=nomCarte;
this.jour=jour;
this.zoom=zoom;
this.debut=debut;
this.fin=fin;
}

public void init(){
for(int i=0;i<6;i++){
pos[i]=new Vector();
}
}

public void acquisition(){
map = new CreerCarte(nomCarte);
map.lectureCarte();
if(jour==0){
dessiner=map.getJour();
}else{
dessiner=map.getNuit();
}
}


public void allcarte(Graphics g){
float coefx,coefy;
if(zoom==false){
coefx = (float)(this.getSize().getWidth()/LON);
coefy = (float)(this.getSize().getHeight()/LAR);
addMouseListener(new Souris());
}else{
coefx=2;
coefy=2;
}
init();
float x=(int)((10*coefx)+0.5);
float yinit=(int)((220*coefy)+0.5);
float y = yinit;
Float temp;
Graphics2D g2 = (Graphics2D)g;
Formes f = new Formes();
//System.out.println("fini lecture carte");
int parc = 0;
for(int periode=debut;periode<fin;periode++){
BarreCouleurs bar = new BarreCouleurs(map.getMax(periode,jour),map.getMin(periode,jour));
parc=0;
//System.out.println(x);
pos[periode].addElement(new Float(x));
pos[periode].addElement(new Float(y));
for(int i=41;i>0;i--){
for(int j=0;j<26;j++){
temp=(Float)dessiner[periode].elementAt(parc);
setColor(Color.white);
g.fillRect((int)x,(int)y,(int)((7*coefx)+0.5),(int)((7*coefy)+0.5));
//System.out.println("on est en ("+x+","+y+")");
//System.out.println("on a fé un carré à ("+(int)x+","+(int)y+") de taille "+(int)((7*coefx)+0.5)+" * "+(int)((7*coefy)+0.5));
//System.out.println((int)((7*coefx)+0.5));
//System.out.println((int)((7*coefy)+0.5));
if(temp.compareTo(new Float(-2222.0))==0){
g.setColor(Color.white);
g.fillRect((int)x,(int)y,(int)((7*coefx)+0.5),(int)((7*coefy)+0.5));
//System.out.println("on a fé un carré de -2222 à ("+(int)x+","+(int)y+") de taille "+(int)((7*coefx)+0.5)+" * "+(int)((7*coefy)+0.5));
}else{
if(temp.compareTo(new Float(-5555.0))==0){
f.losange(g,(int)x,(int)y,coefx,coefy);
}else{
if(temp.compareTo(new Float(-9999.0))==0){
f.croix(g,(int)x,(int)y,coefx,coefy);
}else{
if(temp.compareTo(new Float(-3333.0))==0){
f.cercle(g,(int)x,(int)y,coefx,coefy);
}else{
if(temp.compareTo(new Float(-1.0))==0){

g.setColor(Color.white);
g.fillRect((int)x,(int)y,(int)((7*coefx)+0.5),(int)((7*coefy)+0.5));
}else{
g.setColor(bar.Coul(temp.floatValue()));
g.fillRect((int)x,(int)y,(int)((7*coefx+0.5)),(int)((7*coefy)+0.5));
}
}
}
}
}
y-=(int)((7*coefy)+0.5);
//System.out.println("on retire "+(int)((7*coefy)+0.5)+" a y");
parc++;
}
y=(int)(yinit);
x+=(int)((7*coefx)+0.5);
}
pos[periode].addElement(new Float(x));
pos[periode].addElement(new Float(y-(25*(int)((7*coefy)+0.5))));
pos[periode].addElement(new Integer(periode));
bar.barre(g,(int)x+((int)((10*coefx)+0.5)),(int)y-(25*(int)((7*coefy)+0.5)),coefx,coefy);
if(periode==2){
x=(int)((10*coefx)+0.5);
}else{
x+=(int)((40*coefx)+0.5);
}
if(periode==2){
yinit+=(int)((300*coefy)+0.5);
y=yinit;
}
}
System.out.println(pos[0]);

}

public void paintComponent(Graphics g){
super.paintComponent(g);
}


private class Souris extends MouseAdapter{
public void mouseClicked(MouseEvent e){
int periode;
Float x1,y1,x2,y2;
Integer val;
int x = 11;//getX();
int y =219; //getY();
System.out.println(x+" "+y);
for(int i=0;i<6;i++){
x1=(Float)pos[i].elementAt(0);
y1=(Float)pos[i].elementAt(1);
x2=(Float)pos[i].elementAt(2);
y2=(Float)pos[i].elementAt(3);
if(x>x1.intValue() && y<y1.intValue() && x<x2.intValue() && y>y2.intValue()){
val=(Integer)pos[i].elementAt(4);
periode=val.intValue();
int count=e.getClickCount();
JFrame panzoom = new JFrame("Zoom carte");
panzoom.setSize(700,500);
Map carteZoom = new Map("cala",0,true,periode,periode+1);
carteZoom.acquisition();
panzoom.getContentPane().add(carteZoom);
panzoom.setResizable(false);
panzoom.show();
}
}
}

}

}

vendredi 16 avril 2004 à 09:38:33 | Re : interface graphique java

kaloway


kaloway

à quoi sert ta boucle for(i=;i<6;i++)?
si tu as 6 fenetres qui s ouvre, le pb vient de cette boucle.
vendredi 16 avril 2004 à 20:01:01 | Re : interface graphique java

Syl20estbon

cette boucle sert a verifier si on est pas dans un des 6 vectors.
La plupart du temps il y a 2 fenetres qui s'affichent parfois plus de 20.
Je me demande si ca vien pas du paintComponent.
lundi 19 avril 2004 à 01:46:33 | Re : interface graphique java

GodConan


GodConan


addMouseListener(new Souris()); voila le coupable ;o)
come on ne voi pas ds ton code ou est apeller allCarte( g )
et il semble qu elle doi etre apeller 'souvent'.

En gros ton listner faut l ajouter qu une seul foi ;o)...
Toi il semble que tu l ajoute de facon ciclic chac foi que tu veux une map ;o) c etonnant que t pas fait peter la stack ;o)..



gl

++


Cette discussion est classée dans : java, graphique, classe, souris, interface


Répondre à ce message

Sujets en rapport avec ce message

interaction entre Thread et JFrame [ par jpegg ] Bonsoir,J ai un probleme pour l'interaction entre un Thread et une interface Graphique. J ai crée une classe heritant d un Thread que j ai appelé Serv vi en java sans interface graphique [ par jules8491 ] salut,je recherche un editeur de texte du style vi mais developpe en java et sans interface graphique, en gros les seuls classes dont j'ai acces sont editeur java avec interface graphique [ par swiss_cheese10 ] Je cherche un éditeur java en francais avec interface graphique ??Eske qqun peut m'aider ??J'ai essayé JBuilder, NetBeans, Script Edit mais je sais pa classe graphique [ par carhartt62 ] Bonjour, Etant novice en java, je vous demande de l'aide :Mon projet de fin d'année est bassé sur une applet java qui doit envoyer et revevoir des inf interface graphique en java [ par maximus84 ] bonjour, je travail sur un prog en java qui doit simuler un ascenseur désservant 10 étages....etc J'aimerai savoir si c t possible une interface gaphi Interface graphique Java + programme systeme en C [ par nounouX ] Voila j'aimerai savoir si il est possible de mettre une interface java a un langage Cpar exemple j'ai fait pour le moment un code tout simple avec un Création d'une interface graphique par polymorphisme [ par diedatnight ] Bonjours, je doit créé un interface graphique par polymorphisme, enfin j'ai un formulaire à constituer avec une classe FormulaireEmployer et une clas Classe Abstraite & Interface [ par stela86 ] Bonjour tout le monde ! Je commence a peine le java et j'aurai voulu savoir la difference entre une classe abstraite et une interface Java !Merci d'av JAVA/C++ ? [ par joduak ] Bonsoir! Je suis débutant en java et en c++ et je voudrais savoir quels sont les avantages de tel ou tel langage dans le développement d'une applicat INTERFACE GRAPHIQUE [ par GHAZJAMEL ] JE BESOIN D'UNE CLASSE QUI PERMET LA CONNEXION INTERNET,et une autre classe qui permet l'installation d'un logiciel sous linux EN JBUILDER10 merci pou


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,374 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales