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


Groups > comp.lang.java.gui > #2546 > unrolled thread

Programatically displayin

Started by"Chanchal" <chanchal@THRWHITE.remove-dii-this>
First post2011-04-27 15:39 +0000
Last post2011-04-27 15:39 +0000
Articles 6 — 4 participants

Back to article view | Back to comp.lang.java.gui


Contents

  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

#2546 — Programatically displayin

From"Chanchal" <chanchal@THRWHITE.remove-dii-this>
Date2011-04-27 15:39 +0000
SubjectProgramatically displayin
Message-ID<1190899451.382794.53170@50g2000hsm.googlegroups.com>
  To: comp.lang.java.gui
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();
    }

    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.

Thanks in advance

Chanchal

---
 * 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

[toc] | [next] | [standalone]


#2547 — Re: Programatically displ

From"Andrew Thompson" <andrew.thompson@THRWHITE.remove-dii-this>
Date2011-04-27 15:39 +0000
SubjectRe: Programatically displ
Message-ID<78d875920b44d@uwe>
In reply to#2546
  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

[toc] | [prev] | [next] | [standalone]


#2548 — Re: Programatically displ

From"Chanchal" <chanchal@THRWHITE.remove-dii-this>
Date2011-04-27 15:39 +0000
SubjectRe: Programatically displ
Message-ID<1190903790.850836.205200@y42g2000hsy.googlegroups.com>
In reply to#2547
  To: comp.lang.java.gui
On Sep 27, 9:48 am, "Andrew Thompson" <u32984@uwe> wrote:
> 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 Thompsonhttp://www.athompson.info/andrew/
>
> Message posted via JavaKB.comhttp://www.javakb.com/Uwe/Forums.aspx/java-gui/200709/1


Dear Mr. Thompson,

     Thanks for the input. But this is not solving my problem. What
happens in this example is that when i click the button, the new
button is added at the center of the scrollpane because flowlayout is
used. I want it to come to the left most end. and when the second one
is added in your example the first one is moved a bit to left and the
newly added one is placed on the right of that. again because
flowlayout is used. but i do not want such movements. i want the first
button to be leftmost, the next one added to the right of that like
that. the button should be added only towards right, no movements to
the left. that's why (i think) i cannot use flowlayout here.

    How can this might be implemented?

Thanks again

Chanchal

---
 * 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

[toc] | [prev] | [next] | [standalone]


#2565 — Re: Programatically displ

From"Andrew Thompson" <andrew.thompson@THRWHITE.remove-dii-this>
Date2011-04-27 15:39 +0000
SubjectRe: Programatically displ
Message-ID<78df69b035098@uwe>
In reply to#2548
  To: comp.lang.java.gui
Chanchal wrote:

>[quoted text clipped - 84 lines]

Please *trim* when replying!

>Dear Mr. Thompson,
>
>     Thanks for the input. But this is not solving my problem. What
>happens in this example is that when i click the button, the new
>button is added at the center of the scrollpane because flowlayout is
>used. I want it to come to the left most end. 

Did you try RTFM?
<http://java.sun.com/javase/6/docs/api/java/awt/FlowLayout.html#FlowLayout(int
)>

-- 
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

[toc] | [prev] | [next] | [standalone]


#2566 — Re: Programatically displ

From"Roedy Green" <roedy.green@THRWHITE.remove-dii-this>
Date2011-04-27 15:39 +0000
SubjectRe: Programatically displ
Message-ID<8avof39pqeg8sqqb1ucsek2usc5ulb912a@4ax.com>
In reply to#2548
  To: comp.lang.java.gui
On Thu, 27 Sep 2007 07:36:30 -0700, Chanchal
<chanchal.jacob@gmail.com> wrote, quoted or indirectly quoted someone
who said :

> i cannot use flowlayout here.

FlowLayout gives you very little control over positioning.  See the
other layouts at http://mindprod.com/jgloss/layout.html
-- 
Roedy Green Canadian Mind Products
The Java Glossary
http://mindprod.com

---
 * 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

[toc] | [prev] | [next] | [standalone]


#2550 — Re: Programatically displ

From"Ian Wilson" <ian.wilson@THRWHITE.remove-dii-this>
Date2011-04-27 15:39 +0000
SubjectRe: Programatically displ
Message-ID<46fbd084$0$8426$db0fefd9@news.zen.co.uk>
In reply to#2546
  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

[toc] | [prev] | [standalone]


Back to top | Article view | comp.lang.java.gui


csiph-web