java - JTextFields and JTextArea shrinking when inputting large quantity of text into JTextArea -


i have jtabbedpane in jdialog box uses gridbaglayout on jpanels contained within pane. on first panel displayed there jtextarea (desctxt) ready input film description in. when input large amount of text jtextarea seems fine until click anywhere on panel isn't component (empty grey space) , text fields , text panes shrink seems size 0.

here example text paste in , test:

during manned mission mars, astronaut mark watney presumed dead after fierce storm , left behind crew. watney has survived , finds himself stranded , alone on hostile planet. meager supplies, must draw upon ingenuity, wit , spirit subsist , find way signal earth alive.

here runnable example of code:

import java.awt.color; import java.awt.dimension; import java.awt.gridbagconstraints; import java.awt.gridbaglayout; import java.awt.insets; import java.awt.event.actionevent; import java.awt.event.actionlistener; import java.io.file; import java.util.arraylist; import java.util.regex.pattern; import javax.swing.borderfactory; import javax.swing.defaultcomboboxmodel; import javax.swing.jbutton; import javax.swing.jcombobox; import javax.swing.jdialog; import javax.swing.jfilechooser; import javax.swing.jframe; import javax.swing.jlabel; import javax.swing.joptionpane; import javax.swing.jpanel; import javax.swing.jscrollpane; import javax.swing.jtabbedpane; import javax.swing.jtextarea; import javax.swing.jtextfield; import javax.swing.scrollpaneconstants; import javax.swing.filechooser.filenameextensionfilter;  /**  *  * @author chris  */ public class adminwindow extends jdialog implements actionlistener {      private jpanel adminpanel1, adminpanel2, adminpanel3;     private jtabbedpane tabpane;     private gridbagconstraints g1, g2, g3;     private jlabel idlbl, showlbl, desclbl, agelbl, imglbl, timelbl, screenlbl,             stanlbl, viplbl, idlbl1, showlbl1, desclbl1, agelbl1, imglbl1, imgname;     private jtextfield idtxt, showtxt, imgtxt, timetxt, stantxt, viptxt,             idtxt1, showtxt1, imgtxt1;     private jtextarea desctxt, desctxt1;     private jcombobox agecb, agecb1, screencb, timecb, showingcb;     private jscrollpane desctxtpane, desctxtpane1;     private arraylist<string> screenlist, timelist, showinglist;     private defaultcomboboxmodel screenmodel, timemodel, showingmodel;     private jbutton submit, clear, seatsubmit, seatclear, addbtn, subbtn,             submit1, clear1, imgbtn;     private double stanprice, vipprice;     private string stanpricestring, vippricestring, priceexpression, imgstring;     private pattern p;     private file dest, chosenfile;      public adminwindow() {          //frame properties         super(new jframe("admin panel"));         settitle("admin panel");         //setsize(dimensions.getscreenwidth() - 100, dimensions.getscreenheight() - 100);         setalwaysontop(true);         setresizable(false);         setdefaultcloseoperation(jframe.dispose_on_close);         setlocationrelativeto(null);          //regular expression validations         priceexpression = "[0-9]{1,2}[.]{1}[0-9]{2}";         p = pattern.compile(priceexpression);          //panel dec         tabpane = new jtabbedpane();         adminpanel1 = new jpanel();         adminpanel2 = new jpanel();         adminpanel3 = new jpanel();         g1 = new gridbagconstraints();         g2 = new gridbagconstraints();         g3 = new gridbagconstraints();          //label dec         idlbl = new jlabel("film id");         showlbl = new jlabel("film name");         desclbl = new jlabel("film description");         agelbl = new jlabel("age rating");         imglbl = new jlabel("image");         idlbl1 = new jlabel("film id");         showlbl1 = new jlabel("film name");         desclbl1 = new jlabel("film description");         agelbl1 = new jlabel("age rating");         imglbl1 = new jlabel("image");         timelbl = new jlabel("showing times");         screenlbl = new jlabel("screen number");         stanlbl = new jlabel("standard ticket cost (£)");         viplbl = new jlabel("vip ticket cost (£)");         imgname = new jlabel("filename.jpg");          //label properties         imgname.setpreferredsize(new dimension(100, 20));          //txttfield dec         idtxt = new jtextfield(4);         showtxt = new jtextfield(30);         desctxt = new jtextarea(4, 30);         desctxtpane = new jscrollpane(desctxt, scrollpaneconstants.vertical_scrollbar_as_needed, scrollpaneconstants.horizontal_scrollbar_never);         imgtxt = new jtextfield();         idtxt1 = new jtextfield(4);         showtxt1 = new jtextfield(30);         desctxt1 = new jtextarea(4, 30);         desctxtpane1 = new jscrollpane(desctxt1, scrollpaneconstants.vertical_scrollbar_as_needed, scrollpaneconstants.horizontal_scrollbar_never);         imgtxt1 = new jtextfield();         timetxt = new jtextfield(4);         stantxt = new jtextfield(4);         viptxt = new jtextfield(4);          //textfield properties         idtxt1.seteditable(false);         desctxt.setwrapstyleword(true);         desctxt.setlinewrap(true);          //drop-down dec         agecb = new jcombobox();         agecb1 = new jcombobox();         screencb = new jcombobox();         timecb = new jcombobox();         showingcb = new jcombobox();          //dropdown properties         timecb.setpreferredsize(new dimension(60, 23));          //buttons         submit = new jbutton("submit");         clear = new jbutton("clear");         submit1 = new jbutton("submit");         clear1 = new jbutton("clear");         seatsubmit = new jbutton("submit");         seatclear = new jbutton("show current");         addbtn = new jbutton("+");         subbtn = new jbutton("-");         imgbtn = new jbutton("browse..");          //button properties         addbtn.setfocuspainted(false);         subbtn.setfocuspainted(false);         addbtn.setmargin(new insets(0, 5, 0, 5));         subbtn.setmargin(new insets(0, 5, 0, 5));          //listeners         submit.addactionlistener(this);         clear.addactionlistener(this);         seatsubmit.addactionlistener(this);         seatclear.addactionlistener(this);         addbtn.addactionlistener(this);         subbtn.addactionlistener(this);         imgbtn.addactionlistener(this);           //fill price text fields existing prices         defaultform();          //add items jcombobox         agecb.additem("u");         agecb.additem("12a");         agecb.additem("15");         agecb.additem("18");         agecb1.additem("u");         agecb1.additem("12a");         agecb1.additem("15");         agecb1.additem("18");          //panel properties          adminpanel1.setlayout(new gridbaglayout());         adminpanel2.setlayout(new gridbaglayout());         adminpanel3.setlayout(new gridbaglayout());         adminpanel1.setborder(borderfactory.createtitledborder(borderfactory.createlineborder(color.black), "new showing"));         adminpanel2.setborder(borderfactory.createtitledborder(borderfactory.createlineborder(color.black), "seat prices"));         adminpanel3.setborder(borderfactory.createtitledborder(borderfactory.createlineborder(color.black), "edit showing"));          //ading panels tabbed pane         tabpane.addtab("add showings", null, adminpanel1, "add new showings & showing times");         tabpane.addtab("seat prices", null, adminpanel2, "change seat prices");         tabpane.addtab("edit showing", null, adminpanel3, "edit existing showing");          //-----adding components pane--------------------------------------!         g1.gridx = 0;         g1.gridy = 0;         g1.insets = new insets(10, 0, 0, 10);         g1.anchor = gridbagconstraints.line_end;         adminpanel1.add(idlbl, g1);         g1.gridx++;         g1.anchor = gridbagconstraints.line_start;         adminpanel1.add(idtxt, g1);         g1.gridy++;         g1.gridx--;         g1.anchor = gridbagconstraints.line_end;         adminpanel1.add(showlbl, g1);         g1.gridx++;         g1.anchor = gridbagconstraints.line_start;         g1.gridwidth = 4;         adminpanel1.add(showtxt, g1);         g1.gridwidth = 1;         g1.gridy++;         g1.gridx--;         g1.anchor = gridbagconstraints.line_end;         adminpanel1.add(desclbl, g1);         g1.gridx++;         g1.anchor = gridbagconstraints.line_start;         g1.gridwidth = 4;         adminpanel1.add(desctxtpane, g1);         g1.gridwidth = 1;         g1.gridy++;         g1.gridx--;         g1.anchor = gridbagconstraints.line_end;         adminpanel1.add(agelbl, g1);         g1.gridx++;         g1.anchor = gridbagconstraints.line_start;         adminpanel1.add(agecb, g1);         g1.gridy++;         g1.gridx--;         g1.anchor = gridbagconstraints.line_end;         adminpanel1.add(imglbl, g1);         g1.gridx++;         g1.anchor = gridbagconstraints.line_start;         g1.gridwidth = 2;         adminpanel1.add(imgbtn, g1);         g1.gridx = 3;         adminpanel1.add(imgname, g1);         g1.gridwidth = 1;         g1.gridy++;         g1.gridx = 0;         g1.anchor = gridbagconstraints.line_end;         adminpanel1.add(screenlbl, g1);         g1.gridx++;         g1.anchor = gridbagconstraints.line_start;         adminpanel1.add(screencb, g1);         g1.gridx--;         g1.gridy++;         g1.anchor = gridbagconstraints.line_end;         adminpanel1.add(timelbl, g1);         g1.gridx++;         g1.anchor = gridbagconstraints.line_start;         adminpanel1.add(timetxt, g1);         g1.gridx++;         adminpanel1.add(addbtn, g1);         g1.gridx++;         adminpanel1.add(timecb, g1);         g1.gridx++;         adminpanel1.add(subbtn, g1);         //buttons         g1.gridy++;         g1.gridx = 0;         g1.insets = new insets(10, 0, 10, 10); //top, right, bottom, left         g1.anchor = gridbagconstraints.line_end;         adminpanel1.add(clear, g1);         g1.gridx++;         g1.anchor = gridbagconstraints.line_start;         g1.gridwidth = 4;         adminpanel1.add(submit, g1);         g1.gridwidth = 1;          //------adding components panel2-----------------------------------!         //left         g2.gridx = 0;         g2.gridy = 0;         g2.insets = new insets(10, 10, 0, 10);         g2.anchor = gridbagconstraints.line_end;         adminpanel2.add(stanlbl, g2);         g2.gridy++;         adminpanel2.add(viplbl, g2);         g2.gridy++;         adminpanel2.add(seatclear, g2);         //right         g2.gridy = 0;         g2.gridx++;         g2.anchor = gridbagconstraints.line_start;         adminpanel2.add(stantxt, g2);         g2.gridy++;         adminpanel2.add(viptxt, g2);         g2.gridy++;         adminpanel2.add(seatsubmit, g2);          //-----adminpanel3-----------------------------------------------------         //adding components panel1         g3.gridx = 1;         g3.gridy = 0;         g3.insets = new insets(10, 0, 0, 10);         g3.anchor = gridbagconstraints.line_start;         g3.gridwidth = 4;         adminpanel3.add(showingcb, g3);         g3.gridwidth = 1;         g3.gridx--;         g3.gridy++;         g3.anchor = gridbagconstraints.line_end;         adminpanel3.add(idlbl1, g3);         g3.gridx++;         g3.anchor = gridbagconstraints.line_start;         adminpanel3.add(idtxt1, g3);         g3.gridy++;         g3.gridx--;         g3.anchor = gridbagconstraints.line_end;         adminpanel3.add(showlbl1, g3);         g3.gridx++;         g3.anchor = gridbagconstraints.line_start;         g3.gridwidth = 5;         adminpanel3.add(showtxt1, g3);         g3.gridwidth = 1;         g3.gridy++;         g3.gridx--;         g3.anchor = gridbagconstraints.line_end;         adminpanel3.add(desclbl1, g3);         g3.gridx++;         g3.anchor = gridbagconstraints.line_start;         g3.gridwidth = 4;         adminpanel3.add(desctxtpane1, g3);         g3.gridwidth = 1;         g3.gridy++;         g3.gridx--;         g3.anchor = gridbagconstraints.line_end;         adminpanel3.add(agelbl1, g3);         g3.gridx++;         g3.anchor = gridbagconstraints.line_start;         adminpanel3.add(agecb1, g3);         g3.gridy++;         g3.gridx--;          //buttons         g3.gridy++;         g3.gridx = 0;         g3.insets = new insets(10, 0, 10, 10); //top, right, bottom, left         g3.anchor = gridbagconstraints.line_end;         adminpanel3.add(clear1, g3);         g3.gridx++;         g3.anchor = gridbagconstraints.line_start;         g3.gridwidth = 4;         adminpanel3.add(submit1, g3);         g3.gridwidth = 1;          //adding tabbed pane frame         this.add(tabpane);         this.pack();          //visibility         setvisible(true);         tabpane.setvisible(true);          //actionlisteners     }      public static void main(string[] args) {         adminwindow test = new adminwindow();     }      @override     public void actionperformed(actionevent e) {          if (e.getsource() == imgbtn) {              //--jfilechooser, ugly better use--             string userdir = system.getproperty("user.home");             jfilechooser chooser = new jfilechooser(userdir+"/desktop");             int choice = chooser.showdialog(this, "choose");             if (choice != jfilechooser.approve_option) {                 return;             }              filenameextensionfilter filter = new filenameextensionfilter("image files", "jpg", "png", "gif", "jpeg");             chooser.setacceptallfilefilterused(false);             chooser.addchoosablefilefilter(filter);             chosenfile = chooser.getselectedfile();             imgname.settext(chosenfile.getname());             dest = new file(system.getproperty("user.dir") + "/src/iegroup/resources", chosenfile.getname());             imgstring = "resources/" + chosenfile.getname();             system.out.println(dest.topath());         }          if (e.getsource() == submit) {           if (e.getsource() == clear ){           }          if (e.getsource() == seatsubmit) {              }         }         if (e.getsource() == seatclear) {             defaultform();         }          if (e.getsource() == addbtn) {              timemodel.addelement(timetxt.gettext());             timelist.add(timetxt.gettext());         }         if (e.getsource() == subbtn) {             timemodel.removeelement(timecb.getselecteditem());             timelist.remove(timecb.getselecteditem());         }     }      private void defaultform() {          stanpricestring = string.format("%.2f", stanprice);         vippricestring = string.format("%.2f", vipprice);         stantxt.settext(stanpricestring);         viptxt.settext(vippricestring);     }      public void showvalidationprompt(string message) {         jframe validframe = new jframe();         validframe.setalwaysontop(true);         joptionpane.showmessagedialog(validframe, message, "invalid input", joptionpane.closed_option);      }      public void showsuccessprompt(string message) {         jframe errorframe = new jframe();         errorframe.setalwaysontop(true);         joptionpane.showmessagedialog(errorframe, message, "success", joptionpane.closed_option);      } } 

please help. 1 confusing , can't seem find solution anywhere.

so, problem seems combination of setresizable(false) , scrollpaneconstants.vertical_scrollbar_as_needed (alright, hate unresizable windows).

what's happen is, when fill jtextarea, it's "adding" jscrollpane "packed" window, there component's size has changed, when container revalidated, there no longer enough space left pack fields @ preferred size, been sized minimum size instead, typically 0x0 or near enough.

there few things can things along. use gridbagconstraints#fill , use gridbagconstraints.horizontal text fields , gridbagconstraints.both text area's, allow fields "fill" , occupy available space of column/row regardless of when cell space smaller component's preferred size.

you might find gridbagconstraints#weightx/y 1 can help.

and if you're having real trouble, use scrollpaneconstants.vertical_scrollbar_always in jscrollpane, while not pretty, add in jscrollbar size jscrollpane when window packed

updated

so, basically, ended using combination of fill , weightx/y jscrollpane's , jtextareas

g1.fill = gridbagconstraints.both; g1.weightx = 1; g1.weighty = 1; adminpanel1.add(desctxtpane, g1); g1.fill = gridbagconstraints.none; g1.weightx = 0; g1.weighty = 0; 

for jtextfields used fill seems have stabilised things...

g1.fill = gridbagconstraints.horizontal; adminpanel1.add(idtxt, g1); g1.fill = gridbagconstraints.none; 

which resulted in like...

import java.awt.color; import java.awt.dimension; import java.awt.gridbagconstraints; import java.awt.gridbaglayout; import java.awt.insets; import java.awt.event.actionevent; import java.awt.event.actionlistener; import java.io.file; import java.util.arraylist; import java.util.regex.pattern; import javax.swing.borderfactory; import javax.swing.defaultcomboboxmodel; import javax.swing.jbutton; import javax.swing.jcombobox; import javax.swing.jdialog; import javax.swing.jfilechooser; import javax.swing.jframe; import javax.swing.jlabel; import javax.swing.joptionpane; import javax.swing.jpanel; import javax.swing.jscrollpane; import javax.swing.jtabbedpane; import javax.swing.jtextarea; import javax.swing.jtextfield; import javax.swing.scrollpaneconstants; import javax.swing.filechooser.filenameextensionfilter;  public class adminwindow extends jdialog implements actionlistener {      private jpanel adminpanel1, adminpanel2, adminpanel3;     private jtabbedpane tabpane;     private gridbagconstraints g1, g2, g3;     private jlabel idlbl, showlbl, desclbl, agelbl, imglbl, timelbl, screenlbl,             stanlbl, viplbl, idlbl1, showlbl1, desclbl1, agelbl1, imglbl1, imgname;     private jtextfield idtxt, showtxt, imgtxt, timetxt, stantxt, viptxt,             idtxt1, showtxt1, imgtxt1;     private jtextarea desctxt, desctxt1;     private jcombobox agecb, agecb1, screencb, timecb, showingcb;     private jscrollpane desctxtpane, desctxtpane1;     private arraylist<string> screenlist, timelist, showinglist;     private defaultcomboboxmodel screenmodel, timemodel, showingmodel;     private jbutton submit, clear, seatsubmit, seatclear, addbtn, subbtn,             submit1, clear1, imgbtn;     private double stanprice, vipprice;     private string stanpricestring, vippricestring, priceexpression, imgstring;     private pattern p;     private file dest, chosenfile;      public adminwindow() {          //frame properties         settitle("admin panel");         //setsize(dimensions.getscreenwidth() - 100, dimensions.getscreenheight() - 100);         setalwaysontop(true); //        setresizable(false);         setdefaultcloseoperation(jframe.dispose_on_close);         setlocationrelativeto(null);          //regular expression validations         priceexpression = "[0-9]{1,2}[.]{1}[0-9]{2}";         p = pattern.compile(priceexpression);          //panel dec         tabpane = new jtabbedpane();         adminpanel1 = new jpanel();         adminpanel2 = new jpanel();         adminpanel3 = new jpanel();         g1 = new gridbagconstraints();         g2 = new gridbagconstraints();         g3 = new gridbagconstraints();          //label dec         idlbl = new jlabel("film id");         showlbl = new jlabel("film name");         desclbl = new jlabel("film description");         agelbl = new jlabel("age rating");         imglbl = new jlabel("image");         idlbl1 = new jlabel("film id");         showlbl1 = new jlabel("film name");         desclbl1 = new jlabel("film description");         agelbl1 = new jlabel("age rating");         imglbl1 = new jlabel("image");         timelbl = new jlabel("showing times");         screenlbl = new jlabel("screen number");         stanlbl = new jlabel("standard ticket cost (£)");         viplbl = new jlabel("vip ticket cost (£)");         imgname = new jlabel("filename.jpg");          //label properties //        imgname.setpreferredsize(new dimension(100, 20));          //txttfield dec         idtxt = new jtextfield(4);         showtxt = new jtextfield(30);         desctxt = new jtextarea(4, 30);         desctxtpane = new jscrollpane(desctxt, scrollpaneconstants.vertical_scrollbar_as_needed, scrollpaneconstants.horizontal_scrollbar_never);         imgtxt = new jtextfield();         idtxt1 = new jtextfield(4);         showtxt1 = new jtextfield(30);         desctxt1 = new jtextarea(4, 30);         desctxtpane1 = new jscrollpane(desctxt1, scrollpaneconstants.vertical_scrollbar_as_needed, scrollpaneconstants.horizontal_scrollbar_never);         imgtxt1 = new jtextfield();         timetxt = new jtextfield(4);         stantxt = new jtextfield(4);         viptxt = new jtextfield(4);          //textfield properties         idtxt1.seteditable(false);         desctxt.setwrapstyleword(true);         desctxt.setlinewrap(true);          //drop-down dec         agecb = new jcombobox();         agecb1 = new jcombobox();         screencb = new jcombobox();         timecb = new jcombobox();         showingcb = new jcombobox();          //dropdown properties //        timecb.setpreferredsize(new dimension(60, 23));          //buttons         submit = new jbutton("submit");         clear = new jbutton("clear");         submit1 = new jbutton("submit");         clear1 = new jbutton("clear");         seatsubmit = new jbutton("submit");         seatclear = new jbutton("show current");         addbtn = new jbutton("+");         subbtn = new jbutton("-");         imgbtn = new jbutton("browse..");          //button properties         addbtn.setfocuspainted(false);         subbtn.setfocuspainted(false);         addbtn.setmargin(new insets(0, 5, 0, 5));         subbtn.setmargin(new insets(0, 5, 0, 5));          //listeners         submit.addactionlistener(this);         clear.addactionlistener(this);         seatsubmit.addactionlistener(this);         seatclear.addactionlistener(this);         addbtn.addactionlistener(this);         subbtn.addactionlistener(this);         imgbtn.addactionlistener(this);          //fill price text fields existing prices         defaultform();          //add items jcombobox         agecb.additem("u");         agecb.additem("12a");         agecb.additem("15");         agecb.additem("18");         agecb1.additem("u");         agecb1.additem("12a");         agecb1.additem("15");         agecb1.additem("18");          //panel properties         adminpanel1.setlayout(new gridbaglayout());         adminpanel2.setlayout(new gridbaglayout());         adminpanel3.setlayout(new gridbaglayout());         adminpanel1.setborder(borderfactory.createtitledborder(borderfactory.createlineborder(color.black), "new showing"));         adminpanel2.setborder(borderfactory.createtitledborder(borderfactory.createlineborder(color.black), "seat prices"));         adminpanel3.setborder(borderfactory.createtitledborder(borderfactory.createlineborder(color.black), "edit showing"));          //ading panels tabbed pane         tabpane.addtab("add showings", null, adminpanel1, "add new showings & showing times");         tabpane.addtab("seat prices", null, adminpanel2, "change seat prices");         tabpane.addtab("edit showing", null, adminpanel3, "edit existing showing");          //-----adding components pane--------------------------------------!         g1.gridx = 0;         g1.gridy = 0;         g1.insets = new insets(10, 0, 0, 10);         g1.anchor = gridbagconstraints.line_end;         adminpanel1.add(idlbl, g1);         g1.gridx++;         g1.anchor = gridbagconstraints.line_start;     g1.fill = gridbagconstraints.horizontal;     adminpanel1.add(idtxt, g1);     g1.fill = gridbagconstraints.none;         g1.gridy++;         g1.gridx--;         g1.anchor = gridbagconstraints.line_end;         adminpanel1.add(showlbl, g1);         g1.gridx++;         g1.anchor = gridbagconstraints.line_start;         g1.gridwidth = 4;         g1.fill = gridbagconstraints.horizontal;         adminpanel1.add(showtxt, g1);         g1.fill = gridbagconstraints.none;         g1.gridwidth = 1;         g1.gridy++;         g1.gridx--;         g1.anchor = gridbagconstraints.line_end;         adminpanel1.add(desclbl, g1);         g1.gridx++;         g1.anchor = gridbagconstraints.line_start;         g1.gridwidth = 4;         g1.fill = gridbagconstraints.both;         g1.weightx = 1;         g1.weighty = 1;         adminpanel1.add(desctxtpane, g1);         g1.fill = gridbagconstraints.none;         g1.weightx = 0;         g1.weighty = 0;         g1.gridwidth = 1;         g1.gridy++;         g1.gridx--;         g1.anchor = gridbagconstraints.line_end;         adminpanel1.add(agelbl, g1);         g1.gridx++;         g1.anchor = gridbagconstraints.line_start;         adminpanel1.add(agecb, g1);         g1.gridy++;         g1.gridx--;         g1.anchor = gridbagconstraints.line_end;         adminpanel1.add(imglbl, g1);         g1.gridx++;         g1.anchor = gridbagconstraints.line_start;         g1.gridwidth = 2;         adminpanel1.add(imgbtn, g1);         g1.gridx = 3;         adminpanel1.add(imgname, g1);         g1.gridwidth = 1;         g1.gridy++;         g1.gridx = 0;         g1.anchor = gridbagconstraints.line_end;         adminpanel1.add(screenlbl, g1);         g1.gridx++;         g1.anchor = gridbagconstraints.line_start;         adminpanel1.add(screencb, g1);         g1.gridx--;         g1.gridy++;         g1.anchor = gridbagconstraints.line_end;         adminpanel1.add(timelbl, g1);         g1.gridx++;         g1.anchor = gridbagconstraints.line_start;         g1.fill = gridbagconstraints.horizontal;         adminpanel1.add(timetxt, g1);         g1.fill = gridbagconstraints.none;         g1.gridx++;         adminpanel1.add(addbtn, g1);         g1.gridx++;         adminpanel1.add(timecb, g1);         g1.gridx++;         adminpanel1.add(subbtn, g1);         //buttons         g1.gridy++;         g1.gridx = 0;         g1.insets = new insets(10, 0, 10, 10); //top, right, bottom, left         g1.anchor = gridbagconstraints.line_end;         adminpanel1.add(clear, g1);         g1.gridx++;         g1.anchor = gridbagconstraints.line_start;         g1.gridwidth = 4;         adminpanel1.add(submit, g1);         g1.gridwidth = 1;          //------adding components panel2-----------------------------------!         //left         g2.gridx = 0;         g2.gridy = 0;         g2.insets = new insets(10, 10, 0, 10);         g2.anchor = gridbagconstraints.line_end;         adminpanel2.add(stanlbl, g2);         g2.gridy++;         adminpanel2.add(viplbl, g2);         g2.gridy++;         adminpanel2.add(seatclear, g2);         //right         g2.gridy = 0;         g2.gridx++;         g2.anchor = gridbagconstraints.line_start;         g2.fill = gridbagconstraints.horizontal;         adminpanel2.add(stantxt, g2);         g2.fill = gridbagconstraints.none;         g2.gridy++;         g2.fill = gridbagconstraints.horizontal;         adminpanel2.add(viptxt, g2);         g2.fill = gridbagconstraints.none;         g2.gridy++;         adminpanel2.add(seatsubmit, g2);          //-----adminpanel3-----------------------------------------------------         //adding components panel1         g3.gridx = 1;         g3.gridy = 0;         g3.insets = new insets(10, 0, 0, 10);         g3.anchor = gridbagconstraints.line_start;         g3.gridwidth = 4;         adminpanel3.add(showingcb, g3);         g3.gridwidth = 1;         g3.gridx--;         g3.gridy++;         g3.anchor = gridbagconstraints.line_end;         adminpanel3.add(idlbl1, g3);         g3.gridx++;         g3.anchor = gridbagconstraints.line_start;         g3.fill = gridbagconstraints.horizontal;         adminpanel3.add(idtxt1, g3);         g3.fill = gridbagconstraints.none;         g3.gridy++;         g3.gridx--;         g3.anchor = gridbagconstraints.line_end;         adminpanel3.add(showlbl1, g3);         g3.gridx++;         g3.anchor = gridbagconstraints.line_start;         g3.gridwidth = 5;         g3.fill = gridbagconstraints.horizontal;         adminpanel3.add(showtxt1, g3);         g3.fill = gridbagconstraints.none;         g3.gridwidth = 1;         g3.gridy++;         g3.gridx--;         g3.anchor = gridbagconstraints.line_end;         adminpanel3.add(desclbl1, g3);         g3.gridx++;         g3.anchor = gridbagconstraints.line_start;         g3.gridwidth = 4;         g3.fill = gridbagconstraints.both;         g3.weightx = 1;         g3.weighty = 1;         adminpanel3.add(desctxtpane1, g3);         g3.fill = gridbagconstraints.none;         g3.weightx = 0;         g3.weighty = 0;         g3.gridwidth = 1;         g3.gridy++;         g3.gridx--;         g3.anchor = gridbagconstraints.line_end;         adminpanel3.add(agelbl1, g3);         g3.gridx++;         g3.anchor = gridbagconstraints.line_start;         adminpanel3.add(agecb1, g3);         g3.gridy++;         g3.gridx--;          //buttons         g3.gridy++;         g3.gridx = 0;         g3.insets = new insets(10, 0, 10, 10); //top, right, bottom, left         g3.anchor = gridbagconstraints.line_end;         adminpanel3.add(clear1, g3);         g3.gridx++;         g3.anchor = gridbagconstraints.line_start;         g3.gridwidth = 4;         adminpanel3.add(submit1, g3);         g3.gridwidth = 1;          //adding tabbed pane frame         this.add(tabpane);         this.pack();          //visibility         setvisible(true);         tabpane.setvisible(true);          //actionlisteners     }      public static void main(string[] args) {         adminwindow test = new adminwindow();     }      @override     public void actionperformed(actionevent e) {          if (e.getsource() == imgbtn) {              //--jfilechooser, ugly better use--             string userdir = system.getproperty("user.home");             jfilechooser chooser = new jfilechooser(userdir + "/desktop");             int choice = chooser.showdialog(this, "choose");             if (choice != jfilechooser.approve_option) {                 return;             }              filenameextensionfilter filter = new filenameextensionfilter("image files", "jpg", "png", "gif", "jpeg");             chooser.setacceptallfilefilterused(false);             chooser.addchoosablefilefilter(filter);             chosenfile = chooser.getselectedfile();             imgname.settext(chosenfile.getname());             dest = new file(system.getproperty("user.dir") + "/src/iegroup/resources", chosenfile.getname());             imgstring = "resources/" + chosenfile.getname();             system.out.println(dest.topath());         }          if (e.getsource() == submit) {              if (e.getsource() == clear) {              }              if (e.getsource() == seatsubmit) {              }         }         if (e.getsource() == seatclear) {             defaultform();         }          if (e.getsource() == addbtn) {              timemodel.addelement(timetxt.gettext());             timelist.add(timetxt.gettext());         }         if (e.getsource() == subbtn) {             timemodel.removeelement(timecb.getselecteditem());             timelist.remove(timecb.getselecteditem());         }     }      private void defaultform() {          stanpricestring = string.format("%.2f", stanprice);         vippricestring = string.format("%.2f", vipprice);         stantxt.settext(stanpricestring);         viptxt.settext(vippricestring);     }      public void showvalidationprompt(string message) {         jframe validframe = new jframe();         validframe.setalwaysontop(true);         joptionpane.showmessagedialog(validframe, message, "invalid input", joptionpane.closed_option);      }      public void showsuccessprompt(string message) {         jframe errorframe = new jframe();         errorframe.setalwaysontop(true);         joptionpane.showmessagedialog(errorframe, message, "success", joptionpane.closed_option);      } } 

Comments

Popular posts from this blog

get url and add instance to a model with prefilled foreign key :django admin -

android - Keyboard hides my half of edit-text and button below it even in scroll view -

css - Make div keyboard-scrollable in jQuery Mobile? -