Dynamically resize the panel

Hi,I want to repeatedly add one panel having many controls on content pane vertically whenever I press button and it should automatically resize the panel size and content pane size. And it should activate the scroll pane if the page exceeds.Thanks,Vaishali
[285 byte] By [Resize_Panela] at [2007-10-3 8:41:27]
# 1

You didn't ask a question or mention what you have tried so I am going to have to guess:

You are not going to be able to have all this work by adding it to the content pane.Instead first create a panel, give it a box layout, add it to a scroll pane and put the scroll pane on the content panel. Then add your other panels to the first panel you created.

zadoka at 2007-7-15 3:49:45 > top of Java-index,Desktop,Core GUI APIs...
# 2
parent.add( someComponent );parent.revalidate();
camickra at 2007-7-15 3:49:45 > top of Java-index,Desktop,Core GUI APIs...
# 3

Hi,

see the code

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class MyFrame extends javax.swing.JFrame implements ActionListener {

public static int i = 1;

int x=0, y=10, width=900, height=80;

// Variables declaration - do not modify

private javax.swing.JButton AddAttributecmd;

private javax.swing.JButton KillProcPatcmd;

private javax.swing.JButton SrchPatcmd;

private javax.swing.JButton CreateAgentcmd;

private javax.swing.JCheckBox Onchk;

private javax.swing.JCheckBox Offchk;

private javax.swing.JCheckBox Monchk;

private javax.swing.JCheckBox Clnchk;

private javax.swing.JComboBox Typecombo;

private javax.swing.JComboBox ITypecombo;

private javax.swing.JComboBox Validatecombo;

private javax.swing.JLabel AgentNamelbl;

private javax.swing.JLabel OnEntrypointlbl;

private javax.swing.JLabel MonEntrypointlbl;

private javax.swing.JLabel OffEntrypointlbl;

private javax.swing.JLabel ClnEntrypointlbl;

private javax.swing.JLabel CmdPatlbl;

private javax.swing.JLabel Startcmdlbl;

private javax.swing.JLabel Stopcmdlbl;

private javax.swing.JLabel Cleancmdlbl;

private javax.swing.JLabel ProcSrchPatlbl;

private javax.swing.JLabel SLMcmdlbl;

private javax.swing.JLabel Attributelbl;

private javax.swing.JLabel SLMOutPatlbl;

private javax.swing.JLabel MorePatlbl;

private javax.swing.JLabel Typelbl;

private javax.swing.JLabel ITypelbl;

private javax.swing.JLabel AttributeNamelbl;

private javax.swing.JLabel DefaultNamelbl;

private javax.swing.JLabel Descriptionlbl;

private javax.swing.JLabel Validatelbl;

private javax.swing.JLabel NullValuelbl;

private javax.swing.JPanel jPanel1;

private javax.swing.JPanel jPanel2;

private javax.swing.JPanel jPanel3;

private javax.swing.JPanel jPanel4;

private javax.swing.JPanel jPanel5;

private javax.swing.JPanel jPanel6;

private javax.swing.JPanel jPanel7;

private javax.swing.JTextField AgentNametxt;

private javax.swing.JTextField Stopcmdtxt;

private javax.swing.JTextField Cleancmdtxt;

private javax.swing.JTextField ProcSrchPattxt;

private javax.swing.JTextField SLMcmdtxt;

private javax.swing.JTextField SLMOutPattxt;

private javax.swing.JTextField AttributeNametxt;

private javax.swing.JTextField DefaultNametxt;

private javax.swing.JTextField Descriptiontxt;

private javax.swing.JTextField OnEntrypointtxt;

private javax.swing.JTextField MonEntrypointtxt;

private javax.swing.JTextField OffEntrypointtxt;

private javax.swing.JTextField ClnEntrypointtxt;

private javax.swing.JTextField Startcmdtxt;

private javax.swing.JCheckBox Userchk;

private javax.swing.JCheckBox SLMDelaychk;

private javax.swing.JCheckBox CheckPortchk;

private javax.swing.JCheckBox UserKillchk;

private javax.swing.JCheckBox RemoveIPCchk;

private Container contentpane;

/** Creates new form crAgent */

public MyFrame() {

initComponents();

}

private void initComponents()

{

contentpane = getContentPane();

contentpane.setLayout(null);

jPanel1 = new javax.swing.JPanel();

AgentNamelbl = new javax.swing.JLabel();

AgentNametxt = new javax.swing.JTextField();

Attributelbl = new javax.swing.JLabel();

Typelbl = new javax.swing.JLabel();

ITypelbl = new javax.swing.JLabel();

AttributeNamelbl = new javax.swing.JLabel();

DefaultNamelbl = new javax.swing.JLabel();

Descriptionlbl = new javax.swing.JLabel();

NullValuelbl = new javax.swing.JLabel();

jPanel3 = new javax.swing.JPanel();

OnEntrypointtxt = new javax.swing.JTextField();

MonEntrypointtxt = new javax.swing.JTextField();

OffEntrypointtxt = new javax.swing.JTextField();

ClnEntrypointtxt = new javax.swing.JTextField();

OnEntrypointlbl = new javax.swing.JLabel();

MonEntrypointlbl = new javax.swing.JLabel();

OffEntrypointlbl = new javax.swing.JLabel();

ClnEntrypointlbl = new javax.swing.JLabel();

jPanel6 = new javax.swing.JPanel();

jPanel7 = new javax.swing.JPanel();

KillProcPatcmd = new javax.swing.JButton();

SrchPatcmd = new javax.swing.JButton();

AddAttributecmd = new javax.swing.JButton();

MorePatlbl = new javax.swing.JLabel();

CreateAgentcmd = new javax.swing.JButton();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

AgentNamelbl.setFont(new java.awt.Font("Verdana", 0, 12));

AgentNamelbl.setText("Agent Name");

jPanel1.setLayout(null);

AgentNamelbl.setBounds(new Rectangle(10, 5, 80, 20));

jPanel1.setSize(900,20);

jPanel1.add(AgentNamelbl);

AgentNametxt.setToolTipText("Enter Agent Name");

AgentNametxt.setBounds(new Rectangle(100, 5, 100, 20));

jPanel1.add(AgentNametxt);

Attributelbl.setFont(new java.awt.Font("Verdana", 1, 14));

Attributelbl.setText("Attributes");

Attributelbl.setBounds(new Rectangle(10, 30, 80, 20));

jPanel1.add(Attributelbl);

jPanel1.setName("Panel1");

Typelbl.setFont(new java.awt.Font("Verdana", 0, 12));

Typelbl.setText("Type");

Typelbl.setBounds(new Rectangle(10, 50, 80, 20));

jPanel1.add(Typelbl);

ITypelbl.setFont(new java.awt.Font("Verdana", 0, 12));

ITypelbl.setText("IType");

ITypelbl.setBounds(new Rectangle(100, 50, 80, 20));

jPanel1.add(ITypelbl);

AttributeNamelbl.setFont(new java.awt.Font("Verdana", 0, 12));

AttributeNamelbl.setText("Attribute Name");

AttributeNamelbl.setBounds(new Rectangle(190, 50, 200, 20));

jPanel1.add(AttributeNamelbl);

DefaultNamelbl.setFont(new java.awt.Font("Verdana", 0, 12));

DefaultNamelbl.setText("Default Value");

DefaultNamelbl.setBounds(new Rectangle(410, 50, 200, 20));

jPanel1.add(DefaultNamelbl);

Descriptionlbl.setFont(new java.awt.Font("Verdana", 0, 12));

Descriptionlbl.setText("Description");

Descriptionlbl.setBounds(new Rectangle(630, 50, 200, 20));

jPanel1.add(Descriptionlbl);

jPanel1.setBounds(new Rectangle(x, y, width, height));

contentpane.add(jPanel1);

AddAttributecmd.setFont(new java.awt.Font("Verdana", 0, 12));

AddAttributecmd.setText("Click here to add attribute");

AddAttributecmd.setName("AddAttributecmd");

AddAttributecmd.setBounds(new Rectangle(10, 10, 200, 20));

AddAttributecmd.setActionCommand("Action1"); /* new */

AddAttributecmd.addActionListener(this);

jPanel3.add(AddAttributecmd);

jPanel3.setLayout(null);

NullValuelbl.setFont(new java.awt.Font("Verdana", 1, 12));

NullValuelbl.setText("Do NOT allow Null values for following attributes:");

NullValuelbl.setBounds(new Rectangle(10, 40, 400, 20));

jPanel3.add(NullValuelbl);

OnEntrypointtxt.setToolTipText("Do not Enter Null Values");

OnEntrypointtxt.setBounds(new Rectangle(10, 60, 230, 20));

jPanel3.add(OnEntrypointtxt);

OnEntrypointlbl.setFont(new java.awt.Font("Verdana", 0, 12));

OnEntrypointlbl.setText("In Online Entry Point");

OnEntrypointlbl.setDoubleBuffered(true);

OnEntrypointlbl.setHorizontalTextPosition(javax.swing.SwingConstants.LEADING);

OnEntrypointlbl.setBounds(new Rectangle(250, 60, 150, 20));

jPanel3.add(OnEntrypointlbl);

MonEntrypointtxt.setToolTipText("Do not Enter Null Values");

MonEntrypointtxt.setBounds(new Rectangle(390, 60, 230, 20));

jPanel3.add(MonEntrypointtxt);

MonEntrypointlbl.setFont(new java.awt.Font("Verdana", 0, 12));

MonEntrypointlbl.setText("in Monitor Entry Point");

MonEntrypointlbl.setBounds(new Rectangle(620, 60, 200, 20));

jPanel3.add(MonEntrypointlbl);

OffEntrypointtxt.setToolTipText("Do not Enter Null Values");

OffEntrypointtxt.setBounds(new Rectangle(10, 100, 230, 20));

jPanel3.add(OffEntrypointtxt);

OffEntrypointlbl.setFont(new java.awt.Font("Verdana", 0, 12));

OffEntrypointlbl.setText("in Offline Entry Point");

OffEntrypointlbl.setBounds(new Rectangle(250, 100, 150, 20));

jPanel3.add(OffEntrypointlbl);

ClnEntrypointtxt.setToolTipText("Do not Enter Null Values");

ClnEntrypointtxt.setName("ClnEntrypointtxt");

ClnEntrypointtxt.setBounds(new Rectangle(390, 100, 230, 20));

jPanel3.add(ClnEntrypointtxt);

ClnEntrypointlbl.setFont(new java.awt.Font("Verdana", 0, 12));

ClnEntrypointlbl.setText("in Clean Entry Point");

ClnEntrypointlbl.setName("ClnEntrypointlbl");

ClnEntrypointlbl.setBounds(new Rectangle(620, 100, 900, 20));

jPanel3.add(ClnEntrypointlbl);

jPanel3.setBounds(new Rectangle(0, 170, 900, 150));

jPanel3.setSize(900,150);

contentpane.add(jPanel3);

jPanel6.setLayout(new FlowLayout());

SrchPatcmd.setFont(new java.awt.Font("Verdana", 0, 12));

SrchPatcmd.setText("Click to add more Search Process Patterns");

SrchPatcmd.setBounds(new Rectangle(0, 0, 350, 20));

SrchPatcmd.setActionCommand("Action2"); /* new */

SrchPatcmd.addActionListener(this);

jPanel6.add(SrchPatcmd);

jPanel6.setBounds(new Rectangle(10, 490, 350, 100));

// jPanel6.setSize(900,50);

contentpane.add(jPanel6);

setSize(900, 700);

repaint();

show();

}

public void actionPerformed(ActionEvent ev)

{

if (ev.getActionCommand() == "Action1")

{

/*contentpane.add(new javax.swing.JTextField("HELLO"));

contentpane.repaint();

AgentNametxt.setText("Hellooo");

System.out.println("Added textfield");

repaint();*/

createPanel();

/*jPanel2.setVisible(false);

JTextField t = new JTextField(20);

// t.setBackground(Color.YELLOW);

t.setVisible(true);

jPanel2.add(t);

jPanel2.setVisible(true);*/

System.out.println("Clicked on Add Button !");

}

if (ev.getActionCommand() == "Action2")

{

System.out.println("Clicked on Add Button !");

/*contentpane.add(new javax.swing.JTextField("HELLO"));

contentpane.repaint();

AgentNametxt.setText("Hellooo");

System.out.println("Added textfield");

repaint();*/

jPanel6.setVisible(false);

JTextField t = new JTextField(20);

// t.setBackground(Color.YELLOW);

t.setVisible(true);

jPanel6.add(t);

jPanel6.setVisible(true);

}

}

public void createPanel()

{

jPanel2 = new javax.swing.JPanel();

Typecombo = new javax.swing.JComboBox();

ITypecombo = new javax.swing.JComboBox();

AttributeNametxt = new javax.swing.JTextField();

DefaultNametxt = new javax.swing.JTextField();

Descriptiontxt = new javax.swing.JTextField();

Validatelbl = new javax.swing.JLabel();

Validatecombo = new javax.swing.JComboBox();

Onchk = new javax.swing.JCheckBox();

Offchk = new javax.swing.JCheckBox();

Monchk = new javax.swing.JCheckBox();

Clnchk = new javax.swing.JCheckBox();

jPanel2.setLayout(null);

Typecombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Str", "Int",

"boolean" }));

Typecombo.setBounds(new Rectangle(10, 5, 80, 20));

jPanel2.add(Typecombo);

ITypecombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "ENV", "HOST",

"USER", "PORT" }));

ITypecombo.setBounds(new Rectangle(100, 5, 80, 20));

jPanel2.add(ITypecombo);

AttributeNametxt.setToolTipText("Enter Attribute Name");

AttributeNametxt.setBounds(new Rectangle(190, 5, 200, 20));

jPanel2.add(AttributeNametxt);

DefaultNametxt.setToolTipText("Enter Default value");

DefaultNametxt.setBounds(new Rectangle(390, 5, 200, 20));

jPanel2.add(DefaultNametxt);

Descriptiontxt.setToolTipText("Enter Description");

Descriptiontxt.setBounds(new Rectangle(590, 5, 200, 20));

jPanel2.add(Descriptiontxt);

Validatelbl.setFont(new java.awt.Font("Verdana", 0, 12));

Validatelbl.setText("Validate");

Validatelbl.setBounds(new Rectangle(10, 40, 80, 20));

jPanel2.add(Validatelbl);

Validatecombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Port", "User",

"Executable", "Host", "FileExists", "Directory", "Plain File" }));

Validatecombo.setBounds(new Rectangle(100, 40, 100, 20));

jPanel2.add(Validatecombo);

Onchk.setText("ON");

Onchk.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));

Onchk.setMargin(new java.awt.Insets(0, 0, 0, 0));

Onchk.setBounds(new Rectangle(230, 40, 50, 20));

jPanel2.add(Onchk);

Offchk.setText("OFF");

Offchk.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));

Offchk.setMargin(new java.awt.Insets(0, 0, 0, 0));

Offchk.setBounds(new Rectangle(300, 40, 50, 20));

jPanel2.add(Offchk);

Monchk.setText("MON");

Monchk.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));

Monchk.setMargin(new java.awt.Insets(0, 0, 0, 0));

Monchk.setBounds(new Rectangle(380, 40, 50, 20));

jPanel2.add(Monchk);

Clnchk.setText("CLN");

Clnchk.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));

Clnchk.setMargin(new java.awt.Insets(0, 0, 0, 0));

Clnchk.setBounds(new Rectangle(460, 40, 50, 20));

jPanel2.add(Clnchk);

jPanel2.setBounds(new Rectangle(0, 90, 900, 90));

jPanel2.setVisible(true);

contentpane.add(jPanel2);

repaint();

show();

}

public static void main(String args[])

{

new MyFrame().setVisible(true);

}

}

Actually i have one frame. i have to add 7 panels on it.

initially second panel is not there but when i click on "click here to add attribute button" in panel 3 it should add 2nd panel in between first and third panel repeatedly. it is working fine. but whenever i click on add button it is not resizing the panels. also when i click to "click here to add more search pattern process button" it should add text boxes in same panel and it is working fine but it is not resizing that panel after adding text boxes in it. what should i do for it.

Resize_Panela at 2007-7-15 3:49:45 > top of Java-index,Desktop,Core GUI APIs...
# 4
ur cod3 suXX0rYou're using a null layout. So you've basically removed the thing that resizes the components and then you wonder why nothing's resizing the components.Seriously, that's some of the worst code I've seen in a long time. Bravo.
itchyscratchya at 2007-7-15 3:49:45 > top of Java-index,Desktop,Core GUI APIs...
# 5
Ya i know it, setbound is not efficient here.But which layout should i use for adding panel in beetween 2 panels and it should resize automatically. I need urgent help for this.
Resize_Panela at 2007-7-15 3:49:45 > top of Java-index,Desktop,Core GUI APIs...
# 6
basic scenario (haven't read through code)JPanel holdingPanel = new JPanel(new GridLayout(0,1));JScrollPane sp = new JScrollPane(holdingPanel);frame.add(sp);in button's actionListenerholdingPanel.add(anotherPanel);
Michael_Dunna at 2007-7-15 3:49:45 > top of Java-index,Desktop,Core GUI APIs...
# 7
Thanks for the suggestion.My basic problem is i have to add new panel having many controls on it like checkboxes, textfields and labels on it as many times as i press on add button on 3rd panel. and it should automatically resize the window
Resize_Panela at 2007-7-15 3:49:45 > top of Java-index,Desktop,Core GUI APIs...
# 8
Use layout managers. http://java.sun.com/docs/books/tutorial/uiswing/layout/index.html
zadoka at 2007-7-15 3:49:45 > top of Java-index,Desktop,Core GUI APIs...
# 9
from original post> And it should activate the scroll pane if the page exceeds.from reply #7> and it should automatically resize the windowyou can't have both
Michael_Dunna at 2007-7-15 3:49:45 > top of Java-index,Desktop,Core GUI APIs...
# 10
i have tried to add 2nd panel in scrollpane but it's not comming.
Resize_Panela at 2007-7-15 3:49:45 > top of Java-index,Desktop,Core GUI APIs...
# 11

still don't know what you're trying to do, but this might start you off

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

class Testing

{

int counter = 0;

public void buildGUI()

{

final JPanel holdingPanel = new JPanel(new GridLayout(0,1));

JScrollPane sp = new JScrollPane(holdingPanel);

sp.setPreferredSize(new Dimension(225,200));

JButton btn = new JButton("Add Panel");

JFrame f = new JFrame();

f.getContentPane().add(sp,BorderLayout.CENTER);

f.getContentPane().add(btn,BorderLayout.SOUTH);

f.pack();

f.setLocationRelativeTo(null);

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

f.setVisible(true);

btn.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent ae){

holdingPanel.add(new MyPanel(""+counter++));

holdingPanel.revalidate();

holdingPanel.repaint();

}

});

}

public static void main(String[] args)

{

SwingUtilities.invokeLater(new Runnable(){

public void run(){

new Testing().buildGUI();

}

});

}

}

class MyPanel extends JPanel

{

public MyPanel(String panelNumber)

{

setPreferredSize(new Dimension(200,200));

add(new JLabel(panelNumber));

setBorder(new javax.swing.border.LineBorder(Color.BLACK,1));

}

}

Michael_Dunna at 2007-7-15 3:49:45 > top of Java-index,Desktop,Core GUI APIs...
# 12

If you need further help then you need to create a [url http://homepage1.nifty.com/algafield/sscce.html]Short, Self Contained, Compilable and Executable, Example Program[/url] (SSCCE) that demonstrates the incorrect behaviour, because I can't guess exactly what you are doing based on the information provided.

And don't forget to use the [url http://forum.java.sun.com/help.jspa?sec=formatting]Code Formatting Tags[/url] so the code retains its original formatting.

camickra at 2007-7-15 3:49:45 > top of Java-index,Desktop,Core GUI APIs...
# 13

This code is really useful to me.

But I want is the panel should have many controls on it.

In this code whenever i click on "Add Panel" it should add whole "createPanel" on window and when i click on create button it should get all filled information from that controls and print that info in text file.

public void createPanel()

{

AddAttrPanel = new javax.swing.JPanel();

Typecombo = new javax.swing.JComboBox();

ITypecombo = new javax.swing.JComboBox();

AttributeNametxt = new javax.swing.JTextField();

DefaultNametxt = new javax.swing.JTextField();

Descriptiontxt = new javax.swing.JTextField();

Validatelbl = new javax.swing.JLabel();

Validatecombo = new javax.swing.JComboBox();

Onchk = new javax.swing.JCheckBox();

Offchk = new javax.swing.JCheckBox();

Monchk = new javax.swing.JCheckBox();

Clnchk = new javax.swing.JCheckBox();

AddAttrPanel.setLayout(null);

AddAttrPanel.setName("AddAttrPanel" + panelcount);

System.out.println(AddAttrPanel.getName());

Typecombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Str", "Int",

"boolean" }));

Typecombo.setBounds(new Rectangle(10, 5, 80, 20));

AddAttrPanel.add(Typecombo);

ITypecombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "ENV", "HOST",

"USER", "PORT" }));

ITypecombo.setBounds(new Rectangle(100, 5, 80, 20));

AddAttrPanel.add(ITypecombo);

AttributeNametxt.setToolTipText("Enter Attribute Name");

AttributeNametxt.setBounds(new Rectangle(190, 5, 200, 20));

AddAttrPanel.add(AttributeNametxt);

DefaultNametxt.setToolTipText("Enter Default value");

DefaultNametxt.setBounds(new Rectangle(390, 5, 200, 20));

AddAttrPanel.add(DefaultNametxt);

Descriptiontxt.setToolTipText("Enter Description");

Descriptiontxt.setBounds(new Rectangle(590, 5, 200, 20));

AddAttrPanel.add(Descriptiontxt);

Validatelbl.setFont(new java.awt.Font("Verdana", 0, 12));

Validatelbl.setText("Validate");

Validatelbl.setBounds(new Rectangle(10, 40, 80, 20));

AddAttrPanel.add(Validatelbl);

Validatecombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Port", "User",

"Executable", "Host", "FileExists", "Directory", "Plain File" }));

Validatecombo.setBounds(new Rectangle(100, 40, 100, 20));

AddAttrPanel.add(Validatecombo);

Onchk.setText("ON");

Onchk.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));

Onchk.setMargin(new java.awt.Insets(0, 0, 0, 0));

Onchk.setBounds(new Rectangle(230, 40, 50, 20));

AddAttrPanel.add(Onchk);

Offchk.setText("OFF");

Offchk.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));

Offchk.setMargin(new java.awt.Insets(0, 0, 0, 0));

Offchk.setBounds(new Rectangle(300, 40, 50, 20));

AddAttrPanel.add(Offchk);

Monchk.setText("MON");

Monchk.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));

Monchk.setMargin(new java.awt.Insets(0, 0, 0, 0));

Monchk.setBounds(new Rectangle(380, 40, 50, 20));

AddAttrPanel.add(Monchk);

Clnchk.setText("CLN");

Clnchk.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));

Clnchk.setMargin(new java.awt.Insets(0, 0, 0, 0));

Clnchk.setBounds(new Rectangle(460, 40, 50, 20));

AddAttrPanel.add(Clnchk);

AddAttrPanel.setBounds(new Rectangle(0, 0, 900, 90));

AddAttrPanel.setVisible(true);

AddAttrPanel.add(jPanel2);

contentpane.add(jPanel2);

AddAttrPanel.show();

jPanel2.show();

repaint();

show();

panelcount++;

}

Resize_Panela at 2007-7-15 3:49:45 > top of Java-index,Desktop,Core GUI APIs...
# 14

> But I want is the panel should have many controls on it.

this shouldn't be causing you any problems

> In this code whenever i click on "Add Panel" it should add whole

> "createPanel" on window

we can't run it, and most here won't read unformatted code, so, what happens,

does it not do what you want?

> when i click on create button it should get all filled information from that

> controls and print that info in text file.

it's just a matter of using the various get... methods to gather the data, then open

a file, save the data, and close the file.

Search the forums for FileWriter, or PrintWriter

Michael_Dunna at 2007-7-15 3:49:45 > top of Java-index,Desktop,Core GUI APIs...
# 15

sorry for the mistake.

in my code there is one function createPanel() .

this function should get called as many times as i press add button and it should add full panel which i have created in createPanel. In my code it is calling that function but only once. and i need to take values from all panels on another button click event which i don't know how to keep track of all values.

Resize_Panela at 2007-7-21 12:32:11 > top of Java-index,Desktop,Core GUI APIs...
# 16

> In my code there is one function createPanel() .

> this function should get called as many times as i press add button

let's look at the first line of createPanel()

AddAttrPanel = new javax.swing.JPanel();

AddAttrPanel must be a class field for it to have scope here.

you cannot have multiple 'AddAttrPanel's - you can have only one with that identifier,

and, by the look of the rest of your code, similarly for the other components.

what you need to do is turn AddAttrPanel into a class, extending JPanel, same

as my earlier post 'MyPanel'.

as a class you can add as many instances of AddAttrPanel as you like, storing

references to them in perhaps an ArrayList, then when you want to save the data,

you just iterate the arrayList, saving the data from each panel's components

Michael_Dunna at 2007-7-21 12:32:11 > top of Java-index,Desktop,Core GUI APIs...
# 17
Thanx I will try to do it with arraylist.I haven't used arraylist yet. I will first study about it.
Resize_Panela at 2007-7-21 12:32:11 > top of Java-index,Desktop,Core GUI APIs...