java - get value jtextfield from another class to actionperformed method -
i have 2 class, 1 swing , main class, 1 actionperformed method
//class swing package system; import javax.swing.*; import java.awt.event.*; public class gui{ jframe frame = new jframe("frame"); jtextfield tx = new jtextfield(10); jbutton bt = new jbutton("button"); public void gettx(){ return tx.gettext(); } public void init(){ frame.setsize(200, 200); frame.add(tx); frame.add(bt); tx.setbounds(20, 20, 140, 50); bt.setbounds(20, 100, 120, 40); btaddcom.addactionlistener(new actionlistener(){ @override public void actionperformed(actionevent e){ control.btclicked(e); } }); } public gui(){ init(); } public static void main(string[] args) { java.awt.eventqueue.invokelater(new runnable(){ public void run() { new gui().frame.setvisible(true); } }); } }
below other class
package system; import java.awt; import java.awt.event.*; public abstract control implements actionlistener{ public static void btclicked(actionevent e){ gui gui = new gui(); string txf = gui.gettx(); joptionpane.showmessagedialog(null, txf); } }
my question why cannot value jtextfield tx, because blank whenever text filled it. thanks
you're making new instance of gui class, fields empty/reset.
here's should do:
public abstract control implements actionlistener{ public static void btclicked(actionevent e, gui gui){ string txf = gui.gettx(); joptionpane.showmessagedialog(null, txf); } }
usage:
btaddcom.addactionlistener(new actionlistener(){ @override public void actionperformed(actionevent e){ control.btclicked(e, gui.this); } });
Comments
Post a Comment