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.
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.
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));
}
}
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.
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++;
}
> 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
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.
> 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