64*64 petites boutons dans une interface, est il possible?!?!??

[Résolu]
Signaler
Messages postés
28
Date d'inscription
dimanche 2 novembre 2008
Statut
Membre
Dernière intervention
25 novembre 2011
-
Messages postés
28
Date d'inscription
dimanche 2 novembre 2008
Statut
Membre
Dernière intervention
25 novembre 2011
-
Bonjour à tous,

J ai essayée de développer une interface graphique contenant 64*64 bouton mais ça dépasse la taille limite
«The code of constructor surface() is exceeding the 65535 bytes limit»

Bon l'idée c'est de dessiner un circuit en cliquant aux boutons que vont changes 2 couleur
Ya t' il d'autre solution SVPPPPPPPPP c urgent


merci d'avance

26 réponses

Messages postés
28
Date d'inscription
dimanche 2 novembre 2008
Statut
Membre
Dernière intervention
25 novembre 2011

bonjour Julien

je tape votre code comme suit

import javax.swing.JFrame;

class TWA extends JFrame {

public static void main(String args[]) {
    JFrame frame = new JFrame("interface TWA");
  
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   		   
    Panel panel = new Panel();
      new ListenerPanel(panel);
      frame.add(panel);
    

    frame.setSize(500, 500);
    frame.setVisible(true);
  }
}
//-------------------------------------------------------------------

import java.awt.Color;
import java.awt.event.*;


public class ListenerPanel implements MouseListener {

private Panel panel;

public ListenerPanel(Panel panel){
this.panel = panel;
}


public void mouseClicked(MouseEvent e){
panel.addPoint(e.getX(), e.getY(), Color.blue);
panel.repaint();
 	
 	}

/**
  * Invoked when the mouse enters a component.
  */
public void mouseEntered(MouseEvent e){

}

/**
  * Invoked when the mouse exits a component.
  */
public void mouseExited(MouseEvent e){
}
        
/**
  *Invoked when a mouse button has been pressed on a component.
  */
public void mousePressed(MouseEvent e){

}
        
/**
  * Invoked when a mouse button has been released on a component.
  */
public void mouseReleased(MouseEvent e){

}

}
//--------------------------------------------------

import java.awt.Color;

import java.awt.Graphics;

import java.util.List;

import java.awt.*;

import javax.swing.JPanel;

import java.util.ArrayList;

public class Panel extends JPanel {

private List  points;

private List<Color> couleurs;

public Panel(){
super();

points = new ArrayList ();
couleurs = new ArrayList <Color>();
}


public void addPoint(int x, int y, Color couleur){
points.add(new Point(x, y));
couleurs.add(couleur);
}


public int doubleToInt(double monDouble) {
        long l = Math.round(monDouble);
        String s = ""+l;
        int i;
        try {
            i = Integer.parseInt(s);
        } catch (NumberFormatException e) {
            if (l<0) { i Integer.MIN_VALUE; } else { i Integer.MAX_VALUE; }
        }
        return i;
    }
public void paintComponent(Graphics g){

super.paintComponent(g);

int tailleCarre = getWidth()/64;
for(int i=0; i<points.size(); i++){
g.setColor(couleurs.get(i));
g.fillRect(
doubleToInt(points.get(i).getX()-tailleCarre/2),//x
doubleToInt(points.get(i).getY()-tailleCarre/2),//y
tailleCarre,
tailleCarre
);
}

}
 

}



le résulta de l'exuc
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
360
et dans la classe TWA enleve le extends JFrame, il ne sert à rien
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
360
Par contre, je ne comprends pas d'ou vient ton erreur, comment lances tu ton programme, avec eclipse ? As tu bien installé java ? et le compilateur ?
Messages postés
28
Date d'inscription
dimanche 2 novembre 2008
Statut
Membre
Dernière intervention
25 novembre 2011

c'est b1 ça marche

menon veut faire deux panel séparé dans un frame.... mais tjr la panel "panel" monopole tout le frame

voila le code
import java.awt.GridLayout;

import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRadioButton;

class TWA  {
public static void main(String args[]) {
    JFrame frame = new JFrame("interface TWA");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    
    JRadioButton diButton   = new JRadioButton("diélectrique"  , true);
   JRadioButton meButton    = new JRadioButton("metal"   , false);
   JRadioButton cseButton = new JRadioButton("surface d'impédance", false);
   JRadioButton surfButton = new JRadioButton("source", false);
   ButtonGroup bgroup = new ButtonGroup();
   bgroup.add(diButton);
   bgroup.add(meButton);
   bgroup.add(surfButton);
   bgroup.add(cseButton);
   JPanel radioPanel = new JPanel();
   radioPanel.setLayout(new GridLayout(4, 1));
   radioPanel.add(diButton);
   radioPanel.add(meButton);
   radioPanel.add(cseButton);
   radioPanel.add(surfButton);
   
   radioPanel.setBorder(BorderFactory.createTitledBorder(
              BorderFactory.createEtchedBorder(), "choisissez le composant  "));
 
    //Declaration du panel	   
    Panel panel = new Panel();
    JPanel panel2 = new JPanel();
    panel2.add(panel);
    panel2.setBorder(BorderFactory.createTitledBorder(
              BorderFactory.createEtchedBorder(), " dessinez votre circuit  "));
 
 
            //Ajout du mouselistener au panel
            panel.addMouseListener(new ListenerPanel(panel));
    
    frame.add(radioPanel);
    frame.add(panel);
    radioPanel.setSize(500,200);
    panel.setSize(500, 500);
 
    
    frame.setSize(500, 700);
    frame.setVisible(true);
  }}
Messages postés
28
Date d'inscription
dimanche 2 novembre 2008
Statut
Membre
Dernière intervention
25 novembre 2011

Je veux que « Panel» soit dans une zone limitée
Messages postés
28
Date d'inscription
dimanche 2 novembre 2008
Statut
Membre
Dernière intervention
25 novembre 2011

J’ai crée une variable static couleur qui va c’est modifier selon le JRadioButten dans la classe TWA Comme suite :
  JRadioButton diButton   = new JRadioButton("diélectrique"  , true);
   meButton    = new JRadioButton("metal"   , false);
    sceButton = new JRadioButton("surface d'impédance", false);
    surfButton = new JRadioButton("source", false);
   ButtonGroup bgroup = new ButtonGroup();
   bgroup.add(diButton);
   bgroup.add(meButton);
   bgroup.add(surfButton);
   bgroup.add(sceButton);
   JPanel radioPanel = new JPanel();
   radioPanel.setLayout(new GridLayout(4, 1));
   radioPanel.add(diButton);
   radioPanel.add(meButton);
   radioPanel.add(sceButton);
   radioPanel.add(surfButton);
   
   radioPanel.setBorder(BorderFactory.createTitledBorder(
              BorderFactory.createEtchedBorder(), "choisissez le composant   "));

*
*
*
*
*
public void actionPerformed(ActionEvent e) {
        Object source = e.getSource();
        if (source == diButton) {
        	
        	couleur.getColor("blue");
        } else if (source == meButton) {
        	couleur=couleur.blue;       	
        }
        else if (source == surfButton) {
        	couleur.toString();       	
        }
        else if (source == sceButton) {
        	couleur.toString();       	
        }
    }

*
*
*
*
*
Et dans la classe ListenerPanel j&#8217;ai ajoutée a la methode mouseClicked

public void mouseClicked(MouseEvent e){
panel.addPoint(e.getX(), e.getY(),TWA.couleur;
panel.repaint();
 	

mais le couleur ne change pas !!
voila l’interface



merci d'avance pour votre renonce