tags:

views:

321

answers:

2

Hi,

i am having resizing problem with JList ... Below is my code ...my requirement is to add a JList with some fixed size into a Panel and when i maximize/minimize the Frame the JList should increase/decrease accordingly .please help me ..how to achieve this?

Following is the design:

Hi Carl , It works in simple cases but not in the above case. So i am explaning the above code now ..

i have a frame called "TestListControl" with GB layout. Add selectDevicesPanel with GB layout. In selectDevicesPanel : Add selectNamesInnerPanel with GB layout In selectNamesInnerPanel : Add selectNameAddPanel with GB layout Add selectTeamPanel with Flow layout In selectNameAddPanel: chooseDeviceScrollPane clickToAddDeletePanel selectedNameScrollPane In selectTeamPanel : selectTeamLabel selectTeamComboBox

public class TestListControl extends javax.swing.JFrame {

 public TestListControl() {
  initComponents();
 }

 private void initComponents() {
  java.awt.GridBagConstraints gridBagConstraints;

  selectDevicesPanel = new javax.swing.JPanel();
  selectNamesInnerPanel = new javax.swing.JPanel();
  selectNameAddPanel = new javax.swing.JPanel();
  chooseDeviceScrollPane = new javax.swing.JScrollPane();
  chooseNamesList = new javax.swing.JList();
  clickToAddDeletePanel = new javax.swing.JPanel();
  clickToAddButton = new javax.swing.JButton();
  clickToRemoveButton = new javax.swing.JButton();
  selectedNameScrollPane = new javax.swing.JScrollPane();
  selectedNamesList = new javax.swing.JList();
  selectNameLabel = new javax.swing.JLabel();
  selectTeamPanel = new javax.swing.JPanel();
  selectTeamLabel = new javax.swing.JLabel();
  selectTeamComboBox = new javax.swing.JComboBox();

  setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

  selectDevicesPanel.setBorder(javax.swing.BorderFactory
    .createTitledBorder("Member Selection"));
  selectDevicesPanel.setLayout(new java.awt.GridBagLayout());

  selectNamesInnerPanel.setLayout(new java.awt.GridBagLayout());

  selectNameAddPanel.setLayout(new java.awt.GridBagLayout());

  chooseNamesList.setModel(new javax.swing.AbstractListModel() {
   String[] strings = { "XXXX", "YYYY", "ZZZZ" };

   public int getSize() {
    return strings.length;
   }

   public Object getElementAt(int i) {
    return strings[i];
   }
  });
  chooseNamesList.setMaximumSize(new java.awt.Dimension(46, 88));
  chooseNamesList.setMinimumSize(new java.awt.Dimension(94, 98));
  chooseDeviceScrollPane.setViewportView(chooseNamesList);

  gridBagConstraints = new java.awt.GridBagConstraints();
  gridBagConstraints.gridx = 0;
  gridBagConstraints.gridy = 2;
  gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
  gridBagConstraints.weightx = 1.0;
  gridBagConstraints.weighty = 1.0;
  gridBagConstraints.insets = new java.awt.Insets(0, 12, 7, 0);
  selectNameAddPanel.add(chooseDeviceScrollPane, gridBagConstraints);

  clickToAddDeletePanel.setLayout(new java.awt.GridBagLayout());

  clickToAddButton.setText(">>");
  clickToAddDeletePanel.add(clickToAddButton,
    new java.awt.GridBagConstraints());

  clickToRemoveButton.setText("<<");
  gridBagConstraints = new java.awt.GridBagConstraints();
  gridBagConstraints.gridx = 0;
  gridBagConstraints.gridy = 2;
  clickToAddDeletePanel.add(clickToRemoveButton, gridBagConstraints);

  gridBagConstraints = new java.awt.GridBagConstraints();
  gridBagConstraints.gridx = 1;
  gridBagConstraints.gridy = 2;
  gridBagConstraints.insets = new java.awt.Insets(0, 5, 0, 5);
  selectNameAddPanel.add(clickToAddDeletePanel, gridBagConstraints);

  selectedNamesList.setModel(new javax.swing.AbstractListModel() {
   String[] strings = { "XXXX", "YYYY" };

   public int getSize() {
    return strings.length;
   }

   public Object getElementAt(int i) {
    return strings[i];
   }
  });
  selectedNamesList.setMinimumSize(new java.awt.Dimension(94, 98));
  selectedNameScrollPane.setViewportView(selectedNamesList);

  gridBagConstraints = new java.awt.GridBagConstraints();
  gridBagConstraints.gridx = 2;
  gridBagConstraints.gridy = 2;
  gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
  gridBagConstraints.weightx = 1.0;
  gridBagConstraints.weighty = 1.0;
  gridBagConstraints.insets = new java.awt.Insets(0, 0, 6, 0);
  selectNameAddPanel.add(selectedNameScrollPane, gridBagConstraints);

  selectNameLabel.setText("Select Name");
  gridBagConstraints = new java.awt.GridBagConstraints();
  gridBagConstraints.gridx = 0;
  gridBagConstraints.gridy = 1;
  gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
  gridBagConstraints.insets = new java.awt.Insets(0, 0, 8, 0);
  selectNameAddPanel.add(selectNameLabel, gridBagConstraints);

  gridBagConstraints = new java.awt.GridBagConstraints();
  gridBagConstraints.gridx = 0;
  gridBagConstraints.gridy = 2;
  gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
  gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
  gridBagConstraints.weightx = 1.0;
  gridBagConstraints.weighty = 1.0;
  selectNamesInnerPanel.add(selectNameAddPanel, gridBagConstraints);

  selectTeamLabel.setText("Select Team");
  selectTeamPanel.add(selectTeamLabel);

  selectTeamComboBox.setModel(new javax.swing.DefaultComboBoxModel(
    new String[] { "TEAM X", "TEAM Y", "TEAM Z" }));
  selectTeamComboBox
    .addActionListener(new java.awt.event.ActionListener() {
     public void actionPerformed(java.awt.event.ActionEvent evt) {
      selectTeamComboBoxActionPerformed(evt);
     }
    });
  selectTeamPanel.add(selectTeamComboBox);

  gridBagConstraints = new java.awt.GridBagConstraints();
  gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
  selectNamesInnerPanel.add(selectTeamPanel, gridBagConstraints);

  gridBagConstraints = new java.awt.GridBagConstraints();
  gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
  selectDevicesPanel.add(selectNamesInnerPanel, gridBagConstraints);

  org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(
    getContentPane());
  getContentPane().setLayout(layout);
  layout.setHorizontalGroup(layout.createParallelGroup(
    org.jdesktop.layout.GroupLayout.LEADING).add(0, 400,
    Short.MAX_VALUE).add(
    layout.createParallelGroup(
      org.jdesktop.layout.GroupLayout.LEADING).add(
      layout.createSequentialGroup().add(0, 107,
        Short.MAX_VALUE).add(selectDevicesPanel,
        org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
        185,
        org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
        .add(0, 108, Short.MAX_VALUE))));
  layout.setVerticalGroup(layout.createParallelGroup(
    org.jdesktop.layout.GroupLayout.LEADING).add(0, 300,
    Short.MAX_VALUE).add(
    layout.createParallelGroup(
      org.jdesktop.layout.GroupLayout.LEADING).add(
      layout.createSequentialGroup().add(0, 39,
        Short.MAX_VALUE).add(selectDevicesPanel,
        org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
        221,
        org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
        .add(0, 40, Short.MAX_VALUE))));

  pack();
 }

 private void selectTeamComboBoxActionPerformed(
   java.awt.event.ActionEvent evt) {
  // TODO add your handling code here:
 }

 public static void main(String args[]) {
  java.awt.EventQueue.invokeLater(new Runnable() {
   public void run() {
    new TestListControl().setVisible(true);
   }
  });
 }

 private javax.swing.JScrollPane chooseDeviceScrollPane;
 private javax.swing.JList chooseNamesList;
 private javax.swing.JButton clickToAddButton;
 private javax.swing.JPanel clickToAddDeletePanel;
 private javax.swing.JButton clickToRemoveButton;
 private javax.swing.JPanel selectDevicesPanel;
 private javax.swing.JPanel selectNameAddPanel;
 private javax.swing.JLabel selectNameLabel;
 private javax.swing.JPanel selectNamesInnerPanel;
 private javax.swing.JComboBox selectTeamComboBox;
 private javax.swing.JLabel selectTeamLabel;
 private javax.swing.JPanel selectTeamPanel;
 private javax.swing.JScrollPane selectedNameScrollPane;
 private javax.swing.JList selectedNamesList;

}
+1  A: 

Your list won't get much bigger if you do this:

chooseNamesList.setMaximumSize(new java.awt.Dimension(46, 88));

Carl Smotricz
i set chooseNamesList.setMaximumSize(new java.awt.Dimension(146, 188)); .but still i am getting this issue
Sidharth
Hi Carl .. do u have the solution for this problem?
Sidharth
As I mentioned, I had a problem duplicating your program thanks to the exotic GroupLayout classes. As it is, I'm happy you managed to find a solution on your own.
Carl Smotricz
A: 

guys i solved this problem myself .. thnks for ur co-ordination ..actually i did the mistake of giving weightx and weighty to the parent panel which is holding the both the Jlist and for the JEditor pane ... briefly we need to set weight parameters for all the parent containers which contains any component which you want to resize..

Sidharth
Care to say how ?
Gnoupi
Gnoupi .see above
Sidharth
briefly we need to set weight parameters for all the parent containers which contains any component which you want to resize...... Which was exactly the suggeston I gave you 4 hours before you apparently solved the problem on your own.
camickr