S'abonner :  Newsletters    Magazines
Avis sur les produits Avis sur les logiciels Avis sur les jeux Actualités A propos de 01net
522 utilisateurs connectés

Problème dans mon interface utilisateur.

artragis le 30 octobre 2008 à 18h47
Bonjour, je crée un petit programme pour ma mère qui s'en servira pour ses cours.
J'ai donc créé l'aogorithme, puis je me suis mis à la programation, 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és
JPanel 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.
-------
la siencia es un modo de vivir que puede florecer solo cuando los hombres gozan de liberdad para tener una fe
artragis le 31 octobre 2008 à 10h18
résolution de tout le problème concernant le rectangle. je n'avais pas compris la doc sun. Suite à une recherche sur le web, je suis tombé (avec beaucoup de chance) sur un forum sur lequel il y avait une réponse à cette partie de la question/
Désormais seul le problème de la palce prise par mes composants swing etc est à régler.
-------
la siencia es un modo de vivir que puede florecer solo cuando los hombres gozan de liberdad para tener una fe


PRODUITS

TÉLÉCHARGER - LOGICIELS

JEUX VIDÉOS

LOISIRS

01NET PRO

AVIS ET COMMENTAIRES

A PROPOS DE 01NET

publicité
> Logiciel : Trend Micro
Internet Security
Une sécurité Internet maximale.

Service 01net
Newsletters 01net
abonnez vous gratuitement !
  
01Informatique
01 INFORMATIQUE
L'hebdo de référence des décideurs informatiques.
Micro Hebdo
MICRO HEBDO
L'hebdo qui vous simplifie la micro
et Internet.
L'Ordinateur Individuel
L'ORDINATEUR INDIVIDUEL
Le mensuel informatique qui vous informe et vous conseille.
Nous contacter  |  Charte de confiance  |  Voir notice légale

01net.  -  01men  -  RMC  -  BFM Radio  -  BFM TV  -  TousLesPodcasts  -  01informatique.fr  -  Association RMC-BFM
Tous droits réservés © 1999 - 2009 Internext - 01net.