Re: Programatically displ
To: comp.lang.java.gui
Chanchal wrote:
Hi All,
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.
import javax.swing.*;
import java.awt.event.*;
public class DynamicScroll extends JFrame implements ActionListener{
private int buttonCount = 0;
private JButton jButton1;
private JPanel jPanelInScrollPane;
private JScrollPane jScrollPane1;
public DynamicScroll() {
jScrollPane1 = new JScrollPane();
jPanelInScrollPane = new JPanel();
jButton1 = new JButton();
getContentPane().setLayout(null);
jPanelInScrollPane.setLayout(null);
jScrollPane1.setViewportView(jPanelInScrollPane);
getContentPane().add(jScrollPane1);
jScrollPane1.setBounds(40, 40, 320, 80);
jButton1.setText("Add Button");
jButton1.addActionListener(this);
getContentPane().add(jButton1);
jButton1.setBounds(150, 170, 120, 23);
}
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();
jScrollPane1.validate();
}
public static void main(String args[]) {
DynamicScroll ds = new DynamicScroll();
ds.setSize(400,300);
ds.setVisible(true);
}
}
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.
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
public class DynamicScroll2 extends JPanel implements ActionListener{
private int buttonCount = 0;
private JButton jButton1;
private JPanel jPanelInScrollPane;
private JScrollPane jScrollPane1;
public static void main(String args[]) {
JFrame f = new JFrame("Dynamic Scroll 2");
DynamicScroll2 ds = new DynamicScroll2();
f.add(ds);
f.setSize(400,300);
f.setVisible(true);
}
public DynamicScroll2() {
jPanelInScrollPane = new JPanel();
jPanelInScrollPane.setLayout(
new BoxLayout(jPanelInScrollPane, BoxLayout.LINE_AXIS));
jScrollPane1 = new JScrollPane(jPanelInScrollPane);
jButton1 = new JButton("Add Button");
jButton1.addActionListener(this);
setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS));
add(jScrollPane1);
add(jButton1);
}
public void actionPerformed(ActionEvent evt) {
JButton newButton = new JButton("Button:"+ buttonCount);
newButton.setBounds( buttonCount * (100)+10, 5, 100, 50);
jPanelInScrollPane.add(newButton);
buttonCount ++ ;
jScrollPane1.validate();
}
}
---
* 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