java - how to transmit user variables to paint method -
i'm new there might many problems in code below.
should take user written text text field , draw morse code it. gets text, transmits string in chararray form class, paint method doesn't draw anything(variables not recognized in paint method!!).
input: constructor gets link(or in that)of other class, char string, , place number in string output: last 3 rows drawn, other variables outside paint method not recognized!
here class doesn't work:
public class procesare extends canvas{ morse fereastra; string lit="",cod=""; char car; int nr; public procesare(morse parinte,char c,int i){ fereastra=parinte; car=c; // or without "this" doesn't seem transmit values class nr=i; //this.lit=string.valueof(c); switch (c){ //this part testing values transmited, works case 'a': fereastra.canv.setbackground(color.orange); system.out.println(c+" .-"); break; case 'b': fereastra.canv.setbackground(color.blue); system.out.println(c+" -..."); break; case 'c': fereastra.canv.setbackground(color.red); system.out.println(c+" -.-."); break; case 'd': fereastra.canv.setbackground(color.green); system.out.println(c+" -.."); break; default: break; } } public void paint(graphics g){ lit=string.valueof(car); switch (lit){ case "a": cod=".-"; break; case "b": cod="-..."; break; default: break; } g.drawstring(lit,5,10+nr*10); g.drawstring(cod,15,10+nr*10); g.drawstring(lit,5,10); // these aren't drawing !?!? g.filloval(15, 3, 6, 6); // testing g.drawstring("z",5,20); g.filloval(15, 13, 6, 6); } }
the main class, works:
public class morse extends frame { xtext camp; procesare proc,canv; string s1, str; char[] cuv; int n; public morse(string titlu){ super(titlu); init(); } public static void main (string args[]){ morse app=new morse("morse much?"); app.setsize(250,250); app.show(); } public boolean handleevent(event evt) { if (evt.id==event.window_destroy) {system.exit(0);} return super.handleevent(evt); } public void init(){ setlayout(new gridlayout(3,1,10,20)); setbackground(color.gray); canv=new procesare(this,' ',0); canv.setbackground(color.orange); camp=new xtext(this,"introduceti textul aici:"); add(camp); add(canv); } public insets getinsets(){ return new insets(30,30,30,30); } void update(xtext input){ s1=input.ctext1.gettext(); cuv = s1.tochararray(); for(n=0;n<s1.length();n++){ proc=new procesare(this,cuv[n],n); } } }
Comments
Post a Comment