2 votes

Redimensionnement de JFrame

J'ai adopté le MigLayout et lorsque je fais glisser la fenêtre vers le bas, les composants se redimensionnent, mais lorsque je la fais glisser vers le haut au-delà de la taille à laquelle je lance le programme, ils ne s'agrandissent pas. Comment faire pour qu'ils soient plus grands et plus petits ?

public SpriteEditor() {
    SubstanceColorChooserUI col = new SubstanceColorChooserUI();
    while (mode == 0);
    setResizable(true);
    setTitle("DawnGuard Index 32/34 Editor");
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setSize(483, 374);
    setLocationRelativeTo(null);
    contentPane = new JPanel();
    contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    setContentPane(contentPane);

    textField = new JTextField();
    textField.setColumns(10);

    JButton btnLoadCache = new JButton("Load cache");
    btnLoadCache.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
            try {
                String loc = textField.getText();
                if (loc.equals("")) {
                    JOptionPane.showMessageDialog(SpriteEditor.this, "Please specify a location for the cache.", "Unable to load", JOptionPane.ERROR_MESSAGE);
                    return;
                }
                if (!loc.endsWith("\\"))
                    loc = loc + "\\";
                cache = new Store(loc);
                loadImages();
            } catch (Exception e) {
                JOptionPane.showMessageDialog(SpriteEditor.this, "Cache failed to initialize.\n" + e.getMessage(), "Unable to load", JOptionPane.ERROR_MESSAGE);
            }
        }
    });

    JSplitPane splitPane = new JSplitPane();
    splitPane.setDividerLocation(150);
    splitPane.setContinuousLayout(true);

    JPanel panellie = new JPanel();
    panellie.setLayout(new BorderLayout(0, 0));
    panel = new ImagePanel(null);

    scrollPane_1 = new JScrollPane();
    panellie.add(scrollPane_1, "Center");

    scrollPane_1.setViewportView(panel);
    splitPane.setRightComponent(panellie);

    JPanel panel_1 = new JPanel();
    splitPane.setLeftComponent(panel_1);
    panel_1.setLayout(new BorderLayout(0, 0));

    JScrollPane scrollPane = new JScrollPane();
    panel_1.add(scrollPane, BorderLayout.CENTER);

    model = new DefaultListModel<ListedImage>();
    list = new JList<ListedImage>(model);
    list.addListSelectionListener(new ListSelectionListener() {
        public void valueChanged(ListSelectionEvent arg0) {
            if (arg0.getValueIsAdjusting())
                return;
            ListedImage img = list.getModel().getElementAt(list.getSelectedIndex());
            panel.setImage(img.getImage());
        }
    });
    scrollPane.setViewportView(list);

    progressBar = new JProgressBar();
    progressBar.setStringPainted(true);
    progressBar.setDoubleBuffered(true);

    contentPane.setLayout(new MigLayout("", "[328px][13px][112px]", "[23px][279px][14px]"));
    contentPane.add(textField, "cell 0 0,growx,aligny center");
    contentPane.add(btnLoadCache, "cell 2 0,growx,aligny top");
    contentPane.add(splitPane, "cell 0 1 3 1,grow");
    contentPane.add(progressBar, "cell 0 2 3 1,grow");

}

1voto

Yago Méndez Vidal Points 474

Dans la définition de la mise en page, vous avez :

contentPane.setLayout(new MigLayout("", "[328px][13px][112px]", "[23px][279px][14px]"));

Vous pouvez essayer de dire à la mise en page de se remplir avec une contrainte de mise en page. fill Maintenant, vous devez indiquer quelle(s) colonne(s) et quelle(s) ligne(s) doivent s'agrandir lorsque le panneau s'agrandit avec la contrainte ligne/colonne. grow . Alors...

contentPane.setLayout(new MigLayout("fill", "[328px, grow][13px][112px]", "[23px][279px, grow][14px]"));

0voto

Lajos Arpad Points 5986

Je suppose que la taille maximale est trop petite, vous essayez de définir une taille plus grande que la taille maximale de l'objet. Essayez de définir la largeur maximale et la hauteur maximale. Bonne chance.

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