Path: csiph.com!x330-a1.tempe.blueboxinc.net!feeder1.hal-mli.net!news.glorb.com!news-out.readnews.com!news-xxxfer.readnews.com!news-out.news.tds.net!newsreading01.news.tds.net!86597e80!not-for-mail From: "Andrew Thompson" Subject: Re: Programatically displ Message-ID: <78d875920b44d@uwe> X-Comment-To: comp.lang.java.gui Newsgroups: comp.lang.java.gui In-Reply-To: <1190899451.382794.53170@50g2000hsm.googlegroups.com> References: <1190899451.382794.53170@50g2000hsm.googlegroups.com> Content-Type: text/plain; charset=IBM437 Content-Transfer-Encoding: 8bit X-Gateway: time.synchro.net [Synchronet 3.15a-Win32 NewsLink 1.92] Lines: 96 Date: Wed, 27 Apr 2011 15:39:46 GMT NNTP-Posting-Host: 96.60.20.240 X-Complaints-To: news@tds.net X-Trace: newsreading01.news.tds.net 1303918786 96.60.20.240 (Wed, 27 Apr 2011 10:39:46 CDT) NNTP-Posting-Date: Wed, 27 Apr 2011 10:39:46 CDT Organization: TDS.net Xref: x330-a1.tempe.blueboxinc.net comp.lang.java.gui:2547 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. 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); } } -- 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