Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.gui > #2547

Re: Programatically displ

From "Andrew Thompson" <andrew.thompson@THRWHITE.remove-dii-this>
Subject Re: Programatically displ
Message-ID <78d875920b44d@uwe> (permalink)
Newsgroups comp.lang.java.gui
References <1190899451.382794.53170@50g2000hsm.googlegroups.com>
Date 2011-04-27 15:39 +0000
Organization TDS.net

Show all headers | View raw


  To: comp.lang.java.gui
Chanchal wrote:
.
>I have a JScrollPane on a JFrame. The JScrollPane contain a JPanel.On
>click of a JButton, i'm adding new JButtons to this JPanel, side by
>side.
..
>Starting from the 4th button which is added dynamically, the buttons
>goes outside the JScrollPane. I want the scrollbars of the JScrollPane
>to appear when the dynamically added buttons are outside the area of
>the JScrollPane so that i can scroll and view all the added JButtons.
>Kindly advice on how this can be done.

Layouts, layouts, *layouts*!

This example does not quite have the shape or size 
you originally had, but it ostensibly works.

<sscce>
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;

public class DynamicScroll extends JFrame implements ActionListener{

   private int buttonCount = 0;
   private JButton jButton1;
   private JPanel jPanelInScrollPane;
   private JScrollPane jScrollPane1;

   public DynamicScroll() {
       setDefaultCloseOperation( JFrame.DISPOSE_ON_CLOSE );
       JPanel mainPanel = new JPanel( new BorderLayout(50,50) );
       mainPanel.setBorder( new EmptyBorder(50,50,50,50) );

       jPanelInScrollPane = new JPanel();
       jScrollPane1 = new JScrollPane(jPanelInScrollPane);
       jButton1 = new JButton("Add Button");

       // have you not learned layouts yet?!
       // 'null' layouts are the path to madness!
       // the only time you should be setting a
       // layout to null is for custom painting,
       // and designing a new layout manager..
       // considers - no, even then it is probably redundant
       //getContentPane().setLayout(null);
       jPanelInScrollPane.setLayout(new FlowLayout());

       //jScrollPane1.setViewportView(jPanelInScrollPane);
       mainPanel.add(jScrollPane1, BorderLayout.CENTER);
       //jScrollPane1.setBounds(40, 40, 320, 80);

       //jButton1.setText("Add Button");
       jButton1.addActionListener(this);

       mainPanel.add(jButton1, BorderLayout.SOUTH);
       //jButton1.setBounds(150, 170, 120, 23);

       setContentPane( mainPanel );
       pack();

   }

   public void actionPerformed(ActionEvent evt) {
      JButton newButton = new JButton("Button "+ buttonCount);
       //newButton.setBounds( buttonCount  * (100)+10, 5,  100, 50);
       jPanelInScrollPane.add(newButton);
       buttonCount ++ ;
       jPanelInScrollPane.repaint();
       jPanelInScrollPane.validate();

       // validate the frame
       validate();
   }

   public static void main(String args[]) {
       DynamicScroll ds = new DynamicScroll();

       ds.setSize(400,300);
       ds.setVisible(true);
   }
}
</sscce>

-- 
Andrew Thompson
http://www.athompson.info/andrew/

Message posted via JavaKB.com
http://www.javakb.com/Uwe/Forums.aspx/java-gui/200709/1

---
 * Synchronet * The Whitehouse BBS --- whitehouse.hulds.com --- check it out free usenet!
--- Synchronet 3.15a-Win32 NewsLink 1.92
Time Warp of the Future BBS - telnet://time.synchro.net:24

Back to comp.lang.java.gui | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Programatically displayin "Chanchal" <chanchal@THRWHITE.remove-dii-this> - 2011-04-27 15:39 +0000
  Re: Programatically displ "Andrew Thompson" <andrew.thompson@THRWHITE.remove-dii-this> - 2011-04-27 15:39 +0000
    Re: Programatically displ "Chanchal" <chanchal@THRWHITE.remove-dii-this> - 2011-04-27 15:39 +0000
      Re: Programatically displ "Andrew Thompson" <andrew.thompson@THRWHITE.remove-dii-this> - 2011-04-27 15:39 +0000
      Re: Programatically displ "Roedy Green" <roedy.green@THRWHITE.remove-dii-this> - 2011-04-27 15:39 +0000
  Re: Programatically displ "Ian Wilson" <ian.wilson@THRWHITE.remove-dii-this> - 2011-04-27 15:39 +0000

csiph-web