java - JPanel doesnt show components after the second button click -


i want put jtextpane component in jpanel gridbaglayout when click on button. code works fine first button click, after, next components not displayed.

here code:

import java.awt.*; import java.awt.event.*; import java.util.*;  import javax.swing.*;  public class refreshpanel {  private jframe frame = new jframe(); private jpanel panel = new jpanel(); private jtextpane [] textpane;// = new jtextpane[1]; private jscrollpane scrollbar; private arraylist arraylist = new arraylist(); private jbutton newitem = new jbutton("new"); private int counter=0; private gridbaglayout gbl = new gridbaglayout();  refreshpanel() {      scrollbar = new jscrollpane(panel);      panel.setbackground(color.white);     panel.setlayout(gbl);                             addbuttonlistener();              createframe(); } //constructor  public void addbuttonlistener() {     newitem.addactionlistener(new actionlistener() {          @override         public void actionperformed(actionevent arg0) {             arraylist.add("data");             textpane = generatetextpane(arraylist.size(), arraylist);             system.out.println(textpane.length);             for(int i=0;i<textpane.length;i++) {                 system.out.println(textpane[i].gettext());                 addcomponent(panel, gbl, textpane[i], 0, counter, 1, 1,1,1);                 panel.revalidate();             }                }     }); }  private jtextpane[] generatetextpane(int arraysize, arraylist arraylist) {     jtextpane [] textpane = new jtextpane[arraysize];     for(int i=0;i<textpane.length;i++) {         textpane[i]=new jtextpane();             textpane[i].settext((string) arraylist.get(i));     }     return textpane; }  public void addcomponent(container cont,           gridbaglayout gbl,           component c,          int x, int y,          int width, int height,          double weightx, double weighty) {      gridbagconstraints gbc = new gridbagconstraints();     gbc.fill = gridbagconstraints.horizontal;     gbc.gridx = x; gbc.gridy = y;     gbc.gridwidth = width; gbc.gridheight = height;     gbc.weightx = weightx; gbc.weighty = weighty;     gbl.setconstraints( c, gbc );     cont.add( c ); } public void createframe() {     //frame.getcontentpane().setlayout(new flowlayout());     frame.add(scrollbar, borderlayout.center);     frame.add(newitem, borderlayout.east);     frame.setdefaultcloseoperation(jframe.exit_on_close);     frame.setsize(new dimension(300,300));     frame.setvisible(true); } public static void main(string [] args) {     new refreshpanel(); }        } 

patrick: right! forgot change gridbagconstraints

addcomponent(panel, gbl, textpane[i], 0, i, 1, 1, 1, 1); 

instead of

addcomponent(panel, gbl, textpane[i], 0, counter, 1, 1, 1, 1); 

Comments

Popular posts from this blog

c++ - OpenCV Error: Assertion failed <scn == 3 ::scn == 4> in unknown function, -

php - render data via PDO::FETCH_FUNC vs loop -

The canvas has been tainted by cross-origin data in chrome only -