java - How to print text messages on jtextarea from a different class -
java - How to print text messages on jtextarea from a different class -
i created console based programme allowed users take math quiz. programme generated random numbers , determined if reply right or wrong.
now, i'm trying create gui version of programme , i'm stuck.
i want print text messages in jtextarea different class. i've used , set methods, reason doesn't output text messages. i've done research on swing workers have no thought how work i'm trying avoid using if possible.
this not homework assignment. started learning java 4 months ago may not understand advance concepts.
i guess want know... have utilize swing workers? want generate random numbers , output result in jtextarea... shouldn't freeze gui, right? anyway, in advance.
class="snippet-code-js lang-js prettyprint-override">package algorithmsprogramgui.view; import java.awt.eventqueue; import javax.swing.jframe; import javax.swing.jpanel; import javax.swing.border.emptyborder; import java.awt.toolkit; import java.awt.panel; import javax.swing.jlabel; import java.awt.font; import javax.swing.text.jtextcomponent; import javax.swing.jformattedtextfield; import java.awt.choice; import java.awt.label; import javax.swing.jpopupmenu; import java.awt.component; import java.awt.event.actionevent; import java.awt.event.actionlistener; import java.awt.event.mouseadapter; import java.awt.event.mouseevent; import java.awt.textarea; import java.awt.button; import org.eclipse.wb.swing.focustraversalonarray; import javax.swing.jtextarea; public class proframe extends jframe { /** * */ private static final long serialversionuid = -7222968352076888482l; private static jtextarea textarea; private jpanel contentpane; public static jtextarea gettextarea() { return textarea; } public static void settextarea(jtextarea string) { proframe.textarea = string; } /** * launch application. */ public static void main(string[] args) { eventqueue.invokelater(new runnable() { public void run() { try { proframe frame = new proframe(); frame.setvisible(true); } grab (exception e) { e.printstacktrace(); } } }); } /** * create frame. */ public proframe() { seticonimage(toolkit.getdefaulttoolkit().getimage(proframe.class.getresource("/algorithmsprogramgui/resources/algorithmslogo.png"))); settitle("algorithms"); setdefaultcloseoperation(jframe.exit_on_close); setbounds(100, 100, 864, 590); contentpane = new jpanel(); contentpane.settooltiptext("choose test take"); contentpane.setborder(new emptyborder(5, 5, 5, 5)); setcontentpane(contentpane); contentpane.setlayout(null); jlabel lblselecttest = new jlabel("select test :"); lblselecttest.setfont(new font("times new roman", font.bold, 15)); lblselecttest.setbounds(35, 42, 95, 14); contentpane.add(lblselecttest); jformattedtextfield formattedtextfield = new jformattedtextfield(); formattedtextfield.settooltiptext("input reply here"); formattedtextfield.setbounds(419, 415, 108, 24); contentpane.add(formattedtextfield); label label = new label("answer :"); label.setfont(new font("times new roman", font.bold, 15)); label.setbounds(339, 415, 74, 22); contentpane.add(label); panel status_panel = new panel(); status_panel.setfont(new font("times new roman", font.plain, 12)); status_panel.setbounds(220, 445, 558, 75); contentpane.add(status_panel); button button_1 = new button("next question"); button_1.setfont(new font("times new roman", font.bold, 15)); button_1.setbounds(545, 415, 154, 22); contentpane.add(button_1); jtextarea textarea = new jtextarea(); textarea.seteditable(false); textarea.setbounds(257, 62, 521, 305); contentpane.add(textarea); choice test = new choice(); test.setfont(new font("times new roman", font.bold, 12)); test.setbounds(35, 62, 130, 20); test.add("practice quiz"); test.add("test 1"); test.add("test 2"); contentpane.add(test); button button = new button("generate test"); button.setfont(new font("times new roman", font.bold, 15)); button.setbounds(35, 235, 117, 26); button.addactionlistener(new actionlistener() { public void actionperformed(actionevent e) { string s = test.getselecteditem().tostring(); textarea.settext(s); textarea.setfont(new font("times new roman", font.bold, 12)); if (test.getselecteditem().equalsignorecase("practice quiz")) { algorithmsprogramgui.view.practicequizgui.runpracticequizgui(); } if (test.getselecteditem().equalsignorecase("test 1")) { textarea.settext("test 1 not available @ time."); } if (test.getselecteditem().equalsignorecase("test 2")) { textarea.settext("test 2 not available @ time."); } } }); contentpane.add(button); contentpane.setfocustraversalpolicy(new focustraversalonarray(new component[]{label, formattedtextfield, test, button, status_panel, lblselecttest, button_1})); } @suppresswarnings("unused") private static void addpopup(component component, final jpopupmenu popup) { component.addmouselistener(new mouseadapter() { public void mousepressed(mouseevent e) { if (e.ispopuptrigger()) { showmenu(e); } } public void mousereleased(mouseevent e) { if (e.ispopuptrigger()) { showmenu(e); } } private void showmenu(mouseevent e) { popup.show(e.getcomponent(), e.getx(), e.gety()); } }); } public static void settextarea(string string) { // todo auto-generated method stub } }
class="snippet-code-js lang-js prettyprint-override">package algorithmsprogramgui.view; import javax.swing.jtextarea; import javax.swing.text.jtextcomponent; import java.awt.*; public class practicequizgui { static void runpracticequizgui() { // system.out.println("this statement created in practicequizgui class."); //algorithmsprogramgui.view.proframe.proframe().textarea.settext("s"); //algorithmsprogramgui.view.proframe.gettextarea(); algorithmsprogramgui.view.proframe.settextarea("welcome practice quiz."); //algorithmsprogramgui.view.proframe.gettextarea(); } }
in current code:
public static void settextarea(string string) { // todo auto-generated method stub }
nothing beingness done, utilize jtextarea.settext(string t) method set value
java class object jtextarea
Comments
Post a Comment