java - GUI Save Feature so that when the GUI is closed, when it reopens it has the same data visible -
gui save feature when gui closed, when reopens has same data visible. right gui works fine, , logic segment unfinished doesn't affect problem @ hand. lads.
import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.text.numberformat; import java.lang.math; public class abdul { public static void main(string[] args) { jframe frame = new futurevalueframe(); frame.setvisible(true); } } class futurevalueframe extends jframe { public futurevalueframe() { settitle("loan calculator"); setsize(300, 300); centerwindow(this); setresizable(false); setdefaultcloseoperation(jframe.exit_on_close); jpanel panel = new futurevaluepanel(); this.add(panel); } private void centerwindow(window w) { toolkit tk = toolkit.getdefaulttoolkit(); dimension d = tk.getscreensize(); setlocation((d.width-w.getwidth())/2, (d.height-w.getheight())/2); } } class futurevaluepanel extends jpanel implements actionlistener { private jtextfield paymenttext, ratetext, yearstext, loantext; private jlabel paymentlabel, ratelabel, yearslabel, loanlabel; private jbutton calculatebutton, exitbutton, paymentbutton, loanbutton; public futurevaluepanel() { // display panel jpanel displaypanel = new jpanel(); displaypanel.setlayout( new flowlayout(flowlayout.right)); loanlabel = new jlabel("loan amount:"); displaypanel.add(loanlabel); //hello loantext = new jtextfield(10); displaypanel.add(loantext); ////// /////// ratelabel = new jlabel("yearly interest rate:"); displaypanel.add(ratelabel); ratetext = new jtextfield(10); displaypanel.add(ratetext); //////// yearslabel = new jlabel("number of years:"); displaypanel.add(yearslabel); yearstext = new jtextfield(10); displaypanel.add(yearstext); //////// paymentlabel = new jlabel("monthly payment:"); displaypanel.add(paymentlabel); //hello paymenttext = new jtextfield(10); displaypanel.add(paymenttext); // button panel jpanel buttonpanel = new jpanel(); jpanel alphapanel = new jpanel(); ; buttonpanel.setlayout( new flowlayout(flowlayout.right)); alphapanel.setlayout( new flowlayout(flowlayout.right)); // calculate button calculatebutton = new jbutton("calculate"); calculatebutton.addactionlistener(this); buttonpanel.add(calculatebutton); paymentbutton = new jbutton("monthly payment"); paymentbutton.addactionlistener(this); alphapanel.add(paymentbutton); loanbutton = new jbutton("loan amount"); loanbutton.addactionlistener(this); alphapanel.add(loanbutton); // exit button exitbutton = new jbutton("exit"); exitbutton.addactionlistener(this); buttonpanel.add(exitbutton); // add panels main panel this.setlayout(new borderlayout()); this.add(displaypanel, borderlayout.center); this.add(buttonpanel, borderlayout.south); this.add(alphapanel, borderlayout.north); } public void actionperformed(actionevent e) { object source = e.getsource(); if(source == exitbutton) { system.exit(0);} if (source == paymentbutton){ paymenttext.seteditable(false); paymenttext.setfocusable(false); paymenttext.settext(null); loantext.seteditable(true); loantext.setfocusable(true); } if (source == loanbutton){ loantext.seteditable(false); loantext.setfocusable(false); loantext.settext(null); paymenttext.seteditable(true); paymenttext.setfocusable(true); } if (source == calculatebutton){ numberformat currency = numberformat.getcurrencyinstance(); // paymenttext.settext(currency.format(double.parsedouble(loantext.gettext()))); if() string = currency.format(double.parsedouble(loantext.gettext())); paymenttext.settext(the); } } }
you'll want attach windowlistener futurevalueframe , monitor windowclosing event.
when occurs, want write settings want keep.
when application loaded, read these settings in , apply them application
check out how write window listeners more details
as actual storage, have number of options...
you use properties api has save , load functionality, based on simple key/value pair api.
you use preferences api, has little more functionality (store primitives), lose control on data stored (more or less)
the choice come down want achieve , amount of work want go to
Comments
Post a Comment