1 votes

Problèmes de mise en page de l'interface graphique Java

Je suis en train d'écrire un petit programme Java GUI, et j'ai quelques problèmes avec Java qui ne présente pas les choses correctement. Je n'ai pas fait beaucoup de code Java GUI dernièrement, donc j'ai du mal à voir où se situe le problème.

    final JFreeChart chart = createChart(dataset);
    final ChartPanel chartPanel = new ChartPanel(chart, false);
    chartPanel.setPreferredSize(new Dimension(500, 270));
    JPanel buttonPanel = new JPanel();
    buttonPanel.setPreferredSize(new Dimension(500,50));

    JButton toggleButton = new JButton("Toggle");
    final JTextField minRange = new JTextField("10");
    final JTextField maxRange = new JTextField("1000");
    JButton setLimits = new JButton("Set Limits");

    buttonPanel.add(toggleButton, BorderLayout.NORTH);
    buttonPanel.add(minRange, BorderLayout.SOUTH);
    buttonPanel.add(maxRange, BorderLayout.SOUTH);
    buttonPanel.add(setLimits);

JSplitPane jsp = new JSplitPane(JSplitPane.VERTICAL_SPLIT, chartPanel, buttonPanel);
jsp.setDividerLocation(0.8);
setContentPane(jsp);

Ce qui se passe ici, c'est que toutes les options de mise en page sont complètement ignorées. Les composants de l'interface graphique s'affichent correctement, et le diviseur ignore la taille préférée de JFreeChart, et le comprime à environ 5 % de l'espace en haut du cadre.

0voto

Scott Stanchfield Points 15863

Jamais appelez setPreferredSize() - il devrait s'agir d'un calcul.

Par exemple, votre ButtonPanel est réglé sur une taille préférentielle fixe.

Que se passe-t-il si vous ajoutez le support I18N et que l'utilisateur utilise une langue dont les localisations sont très longues ? Que se passe-t-il si l'utilisateur redimensionne le cadre ?

Consultez mon article sur les gestionnaires de mise en page pour savoir comment les utiliser. Il date de 1999 mais est toujours d'actualité :

http://java.sun.com/developer/onlineTraining/GUI/AWTLayoutMgr/

Profitez-en !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X