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
Post a Comment