try setting the original button dimensions to allow
   for the 'new' text

This won't help because the unwanted resizing occurs also when the
button's text becomes shorter (as shown by the revised class below).

KJ

/* Class Sick2.java (updated) */
import javax.swing.*;
import javax.swing.tree.*;
import java.awt.*;
import java.awt.event.*;

public class Sick2 extends JPanel {

  private static JFrame frame;
  private JScrollPane scrollPane;
  private JPanel panel;
  private JTree tree;
  private JButton button;
  private GridBagLayout gbl;
  private JList list;
  private final String LONG_LABEL = "v e r y   l o n g";
  private final String SHORT_LABEL = "short";

  public Sick2() {
    super();
    gbl = new GridBagLayout();
    setLayout(gbl);

    GridBagConstraints gbc;

    tree = new JTree
      (new DefaultTreeModel(new DefaultMutableTreeNode("Minimal tree")));
    scrollPane = new JScrollPane(tree);
    scrollPane.setMinimumSize(scrollPane.getPreferredSize());

    gbc = getBaseConstraints();
    gbc.gridx = 0; gbc.gridy = 0;
    gbc.gridheight = GridBagConstraints.REMAINDER;
    add(scrollPane, gbc);

    button = new JButton(LONG_LABEL);
    button.addActionListener(new MyButtonListener());

    panel = new JPanel();
    panel.add(button);

    gbc = getBaseConstraints();
    gbc.gridx = 1; gbc.gridy = 0;
    add(panel, gbc);
  }

  private GridBagConstraints getBaseConstraints() {
    GridBagConstraints baseGbc = new GridBagConstraints();
    baseGbc.weightx = baseGbc.weighty = 1.;
    baseGbc.fill = GridBagConstraints.BOTH;
    return baseGbc;
  }

  private class MyButtonListener implements ActionListener {
    public void actionPerformed(ActionEvent e) {
      String text = button.getText();
      if(text.equals(LONG_LABEL)) {
        button.setText(SHORT_LABEL);
      }
      else {
        button.setText(LONG_LABEL);
      }
    }
  }

  public static void main(String[] args) {
    frame = new JFrame();
    frame.getContentPane().add(new Sick2(), "Center");
    frame.pack();
    frame.show();
  }
}
_______________________________________________
Swing mailing list
[EMAIL PROTECTED]
http://eos.dk/mailman/listinfo/swing

Reply via email to