[JAVA] Problème positionnement JButton

Résolu/Fermé
Absot Messages postés 777 Date d'inscription mardi 28 octobre 2008 Statut Membre Dernière intervention 4 septembre 2020 - 1 nov. 2009 à 19:46
Absot Messages postés 777 Date d'inscription mardi 28 octobre 2008 Statut Membre Dernière intervention 4 septembre 2020 - 3 nov. 2009 à 19:10
Bonjour, j'ai un problème avec mes JButton, je n'arrive pas à les faire positionner ou dimensionner comme je veux, j'ai beau changer n'importe quelle valeur dans mon code, ça ne change pas et je dois le refaire parce qu'eclipse a merder et à supprimer quelques fichiers dont ce fichier là qui était fait comme je le souhaitait et je ne me souviens plus trop dans quel ordre j'avais tout mis, etc..

Donc mon problème est que je voudrais que tout mes JButton aient la même dimensions soit de 300 comme il y a des 2 bordures de 25 et que ma JFrame fait 350..

Voici mon code:
package app;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

public class Menu extends JFrame implements ActionListener{

	
	// Attributs
	private PopClient pop;
	private JMenuItem quitter;
	private JButton top;
	private JButton dele;
	private JButton list;
	private JButton rset;
	private JButton retr;
	private JButton quit;
	private JButton connecter;
	private JButton cancel;
	private JTextArea messageJText; 
	
	
	
	public Menu()
	{
		// Donner un titre à la fenetre
		this.setTitle("PopServer");
		// Mettre une taille à la fenetre (largeur,hauteur)
		this.setSize(350,500);
		// Empecher le redimensionnement de la fenetre
		this.setResizable(false);
		// Positionner la fenetre (x,y), null pour le centre
		this.setLocationRelativeTo(null);
		// L'application s'arrête lorsque la fenêtre est fermée.
	     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		//Fonction pour initialiser les composants
		this.init();
		// Rendre visible la fenetre
		this.setVisible(true);
	}
	
	private void init()
	{
		// Menu
		JMenuBar menubar = new JMenuBar();
		JMenu menu = new JMenu("Fichier");
		quitter = new JMenuItem("Quitter");
		// Ajouter le menuitem au menu
		menu.add(quitter);
		menubar.add(menu);
		quitter.addActionListener(this);
		// Positionner le menu en haut de la fenetre
		this.setJMenuBar(menubar);
	
		JPanel panelMenu = new JPanel();
		top = new JButton("Afficher un message (top)");
		list = new JButton("Afficher un message (list)");
		dele = new JButton("Supprimer un message (dele)");
		retr = new JButton("Afficher un message (retr)");
		rset = new JButton("Réinitialiser les messages (rset)");
		quit = new JButton("Quitter l'application (quit)");
		messageJText = new JTextArea();
		// setBounds(int x, int y, int width, int height)
		top.setSize(300, 50);
		top.setBounds(25, 20, 300, 25);
		list.setBounds(50, 80, 300, 25);
		dele.setBounds(25, 140, 300, 25);
		retr.setBounds(25, 200, 300, 25);
		rset.setBounds(25, 260, 300, 25);
		quit.setBounds(25, 320, 300, 25);
		messageJText.setBounds(25, 270, 300, 25);
		panelMenu.add(top);
		panelMenu.add(list);
		panelMenu.add(dele);
		panelMenu.add(retr);
		panelMenu.add(rset);
		panelMenu.add(quit);
		panelMenu.add(messageJText);
		panelMenu.add(messageJText);
		
		getContentPane().add(panelMenu, BorderLayout.CENTER);
	}

	
	public void actionPerformed(ActionEvent e)
	{
		if (e.getSource() == quitter)
		{
			System.exit(0);
		}
	}
	
	
	
	
	
}

A voir également:

6 réponses

Absot Messages postés 777 Date d'inscription mardi 28 octobre 2008 Statut Membre Dernière intervention 4 septembre 2020 44
1 nov. 2009 à 20:43
Quelqu'un sait svp?
0
Absot Messages postés 777 Date d'inscription mardi 28 octobre 2008 Statut Membre Dernière intervention 4 septembre 2020 44
2 nov. 2009 à 12:13
Toujours personne? :(
0
sandul Messages postés 3924 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 8 octobre 2010 722
2 nov. 2009 à 12:45
Hello,

Je te conseille de ne plus travailler avec setBounds et d'utiliser des Layouts. Lorsque tu ne précises pas ton layout (comme c'est le cas pour ton panelMenu), le layout est (par défaut) de type FlowLayout. Pas le type idéal pour faire ce que tu souhaites.

Par ici pour une brève intro aux Layouts: http://www.herongyang.com/Swing/layout.html Si tu ne t'en sors toujours pas, fais signe...

++
0
UaLShark Messages postés 191 Date d'inscription vendredi 19 mai 2006 Statut Membre Dernière intervention 21 juillet 2010 35
2 nov. 2009 à 17:14
panelMenu.setLayout(null);
0
sandul Messages postés 3924 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 8 octobre 2010 722
2 nov. 2009 à 17:17
Ben non... Justement, PAS comme ça... Positionner avec des coordonnées absolues n'a jamais été bon. Que fais-tu en cas de redimensionnement de la fenêtre ? Ou bien si le PC sur lequel ton appli s'exécute n'a pas la même résolution que celle de ton PC de développement ?
0

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

Posez votre question
UaLShark Messages postés 191 Date d'inscription vendredi 19 mai 2006 Statut Membre Dernière intervention 21 juillet 2010 35
2 nov. 2009 à 17:24
C'est vrai ce que tu dis,
l'utilisations des gestionnaires de disposition est nettement meilleure et propre
mais j'ai lu le code affiché et d'apres ce qui est ecrit j'ai proposé une solution.
0
Absot Messages postés 777 Date d'inscription mardi 28 octobre 2008 Statut Membre Dernière intervention 4 septembre 2020 44
3 nov. 2009 à 19:10
Désolé du retard.. :/

Sinon merci pour le lien, je m'en suis inspiré et j'ai réussi à obtenir ce que je voulais. :)

Je mets sur résolu.
0