Je cherche un LayoutManager qui possède des boutons JButtons de hauteur fixe qui s'étendent en largeur pour s'adapter à la taille de leur conteneur. Au-dessus des boutons JButtons, il devrait y avoir un JLabel sur la ligne qui dit "Choose file :". Ceci est destiné à fonctionner comme un accessoire d'un JFileChooser qui permet à l'utilisateur de choisir des fichiers récents. Je n'ai pas réussi à le faire apparaître correctement, j'ai essayé d'utiliser plusieurs JPanels et des LayoutManagers tels que BoxLayout. Lorsque j'utilise BoxLayout, les boutons JB ne s'étendent que dans la mesure où ils doivent contenir leur texte, mais j'aimerais que tous les boutons JB aient la même largeur afin qu'ils n'aient pas l'air bizarre.
Remarque : j'ai également utilisé d'autres gestionnaires de mise en page tels que Border et GridLayout, mais ils ignorent la plupart du temps mes paramètres de taille et ne sont pas assez sophistiqués, semble-t-il. Je dois faire cela à la main, Netbeans etc. n'est pas une option.
Exemple fonctionnel, mais visuellement incorrect
import java.awt.Color;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class Chooser extends JPanel {
public Chooser(){
this.setLayout(new GridLayout(0,1));
JPanel labelPanel = new JPanel();
JLabel label = new JLabel("Choose a file:");
labelPanel.add(label);
labelPanel.setBackground(Color.red);
JPanel buttonPanel = new JPanel();
buttonPanel.add(new JButton("long pathname to a file goes here"));
buttonPanel.setBackground(Color.blue);
this.add(labelPanel);
this.add(buttonPanel);
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Chooser c = new Chooser();
JFileChooser fileChooser = new JFileChooser();
fileChooser.setAccessory(c);
fileChooser.showOpenDialog(null);
}
}