artragis
Messages postés481Date d'inscriptionmardi 12 juin 2007StatutMembreDernière intervention 6 avril 2010
-
31 oct. 2008 à 08:19
artragis
Messages postés481Date d'inscriptionmardi 12 juin 2007StatutMembreDernière intervention 6 avril 2010
-
31 oct. 2008 à 10:16
Bonjour, je crée un petit programme pour ma mère qui s'en servira pour ses cours.
J'ai donc créé l'algorithme, puis je me suis mis à la programmation, en java, qui est le langage que je connais le mieux.
J'ai fait mon interface que voici :
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package classification;
import javax.swing.*;
import java.awt.*;
import java.util.*;
/**
*
* @author François DAMBRINE
*/
public class Main {
/**
* @param args the command line arguments
*/
//les objets interface
JFrame fenêtre=new JFrame("classification emboîtage");
JPanel fond=new JPanel();//le fond principal
JPanel menu=new JPanel();//le menu à droite avec les fonctionnalitésJPanel tabletravail= new JPanel();//le paneau avec les rectangle
// les différentes disposition
BoxLayout dispoMenu = new BoxLayout(menu,BoxLayout.Y_AXIS);
BorderLayout dispogenerale = new BorderLayout();
// composants bouttons et autre textbox
//impression et nouveau (à venir enregistrer)
JButton imprimer = new JButton("Imprimer");
JButton nouveauclassement = new JButton("Nouveau Classement");
//Création d'une division
JLabel diviser = new JLabel("Diviser");
Choice selectmaitre = new Choice();
JTextArea nombrediv = new JTextArea(1,2);
ButtonGroup methode = new ButtonGroup();
JRadioButton horizontale = new JRadioButton("Horizonale");
JRadioButton verticale = new JRadioButton("Verticale");
JButton boutondiv = new JButton("diviser");
//pour renomer un groupe
JLabel renommer=new JLabel ("Renommer");
JTextArea titre = new JTextArea(1,30);
Choice renommerclasseur = new Choice();
JButton mettreuntitre = new JButton("Renommer");
//pour mettre une boite texte
JLabel ajoutanimal = new JLabel("collections");
Choice mettreunanimal = new Choice();
JButton soumettre = new JButton("ajouter un champ d'écriture");
//la liste dynamique de tous les groupes sous forme de vector
Vector listegroupe = new Vector();
JLabel espace = new JLabel(" ");
JLabel espace1 = new JLabel(" ");
JLabel espace2 = new JLabel(" ");
JLabel espace3 = new JLabel(" ");
JLabel espace4 = new JLabel(" ");
JLabel espace5 = new JLabel(" ");
Main (){
fond.setLayout(dispogenerale);
menu.setLayout(dispoMenu);
fond.add("West", menu);
menu.add(imprimer);
menu.add(espace1);
menu.add(nouveauclassement);
menu.add(espace);
menu.add(renommer);
menu.add(renommerclasseur);
menu.add(espace2);
menu.add(titre);
menu.add(mettreuntitre);
menu.add(espace3);
menu.add(ajoutanimal);
menu.add(mettreunanimal);
menu.add(espace4);
menu.add(soumettre);
menu.add(espace5);
menu.add(diviser);
menu.add(selectmaitre);
menu.add(horizontale);
menu.add(verticale);
menu.add(nombrediv);
menu.add(boutondiv);
fond.add("Center", tabletravail);
fenêtre.setContentPane(fond);
fenêtre.setVisible(true);
fenêtre.setSize(1000,600);
partieActive partact = new partieActive(this);
imprimer.addActionListener(partact);
nouveauclassement.addActionListener(partact);
soumettre.addActionListener(partact);
boutondiv.addActionListener(partact);
}
public static void main(String[] args) {
// TODO code application logic here
Main application=new Main();
}
}
Sans se préoccuper pour l'instant des gras et soulignés, j'ai un petit problème
que je mette des TextField ou de TextArea, lors de l'exécution de mon logiciel, les composant prennent une sacré longueur alors que l'une d'entre elle aura au max 2 caractère (des chiffres de 0 à 15) et une autre 30 caractère max (sachant qu'en moyenne on ne dépasse pas 15/20), de ce fait, mes élément Choice prennent trop de place et je perd de l'espace sur la droite qui est la table de travail du logiciel.
J'aimerai savoir comment on peut rapetir la taille verticale et horizontale des textbox. car là ça me fait perdre vraiment de l'espace.
Maintenant, attaquons nous au passage souligné, un panel.
comme vous l'avez vu, j'ai créé une autre classe appellée partieActive. cette classe est recepteur d'évenement.
elle contient aussi une autre classe que j'ai appelée "Groupe" qui me permet de tracer des rectangle en fonction des données entrées dans l'interface. Seulement, je présume que dans le cas présent, les rectangle prendront effet sur toute la fenêtre, or je veux qu'ils ne soient créés que sur le JPanel soulignés afin que je puisse par la suite imprimer ces rectangles. Quel code dois-je mettre? pourriez vous m'expliquer?
pour info, voici la classe groupe
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package classification;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.Graphics;//cela servira à créer un rectangle, ce que je n'arrive pas à faire, NET Beans me souligne mon drawRect(int,int,int,int)
/**
*
* @author François DAMBRINE
*/
public class partieActive implements ActionListener{
Main parent;
partieActive(Main parent){
this.parent=parent;
}
class groupe{
groupe maitre;
int abscice;
int ordonnée;
int abscice_départ = maitre.abscice;
int ordonnée_départ = maitre.ordonnée;
int longueur;
int longueur_maitre=maitre.longueur;
int largeur;
int largeur_maitre = maitre.largeur;
String titre;
int place_titre;
int methode;
drawRect(abscice,ordonnée,longueur,largeur);
}
public void actionPerformed (ActionEvent événement){
Object sourceEvénement = événement.getSource();
}
}
Maintenant, la partie suivante n'est pas un réel problème, c'est juste que, he bien voila, j'aimerai supprimer les label en gras, qui jusqu'à présent me servent à mettre des espaces entre les parties de mon interface. J'aimerai qu'il y ait des espaces entre la partie "division", celle "renommer" et celle "ajouter une collection". Seulement, ne sachant où chercher dans la java doc, je n'ai trouvé que cette astuce pas très astucieuse de mettre des JLabel avec un espace comme texte.
Voila, tout est dit. J'ai beaucoup de problème, si quelqu'un pouvait me donner ne serait-ce que la réponse à UN seul problème, ce serait franchement super.
Trouvez des réponses à vos questions sur les langages, les frameworks et les astuces de codage. Échangez avec d'autres développeurs passionnés pour améliorer vos compétences en programmation et rester au fait des dernières tendances du secteur.