nikedeforest
|
|
« : 19-05-2006 08:03 » |
|
Дело в том, что элементы управления которые я создаю в классе Hello_World унаследованного от Applet, в методе init() появляются. А вот элемент управления который я создаю в классе NewThread не создаются (или не появляются). Также, если я не ошибаюсь, (проверить счейчас не могу) не появляется элемент управления, если я его создаю в классе Hello_World, но не в методе init(), а в каком либо другом. Вопрос? Что надо сделать, чтобы элемент управления отображался вне зависимости от того, где я его создаю Вот код, навсякий случай кидаю весь import java.applet.*; import java.awt.*; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.Graphics;
public class Hello_World extends Applet implements MouseListener { private boolean StartThread; private Font font; private int X, Y; private StringBuffer my_comment; private StringBuffer EventString; private int button, clickCount; private NewThread thThread1, thThread2; public Label static_Label, dynamic_Label; public Button sLabel, dLabel;
public void init() { StartThread=false; button=0; clickCount=0; my_comment=new StringBuffer(""); EventString=new StringBuffer(""); X=0; Y=0; addMouseListener(this);
static_Label= new Label("Thread"); dynamic_Label= new Label("0"); add(static_Label); add(dynamic_Label); sLabel=new Button("sLabel"); dLabel=new Button("dLabel"); add(sLabel); add(dLabel); }
public void paint(Graphics g) { ///--------------------myButton :) if(StartThread==false) { g.setColor(Color.RED); } else { g.setColor(Color.BLUE); } font=new Font("Times New Roman",Font.ITALIC,20); g.setFont(font); g.fill3DRect(10,400,60,40,true); if(StartThread==false) { g.setColor(Color.BLACK); g.drawString("Start", 20, 420); } else { g.setColor(Color.RED); g.drawString("Stop", 20, 420); } ///-------------------------------- //The pink oval Color myColor=new Color(10,20,210); font = new Font("Arial",Font.ITALIC, 48); g.setColor(myColor); g.fillOval(10,210,350,100); g.setColor(Color.yellow); g.setFont(font); g.drawString("Hello World!!!",40,275); ////////////////////////// //Pole information MouseEvent myColor=new Color(0xA2,0xA2,0xA2); g.setColor(myColor); g.fill3DRect(10,10,900,150,false);
font=new Font("Times New Roman", Font.TRUETYPE_FONT,20); g.setFont(font); g.setColor(Color.BLACK); g.drawString("X="+X,10,30); g.drawString("Y="+Y,10,60); g.drawLine(10,70,700,70); g.drawString(""+my_comment,10,100); g.drawLine(10,110,700,110); g.drawString(""+EventString,10,140);
////////////ЭКстра параметра g.drawLine(70, 10, 70, 70); g.drawLine(220, 10, 220, 110); g.setColor(Color.LIGHT_GRAY); g.drawString("button=" + button, 100, 30); g.drawString("clickCount=" + clickCount, 100, 60);
}
public void update(Graphics g) { ///////////--------MyButton :) if(!StartThread) { g.setColor(Color.RED); } else { g.setColor(Color.BLUE); } font=new Font("Times New Roman",Font.ITALIC,20); g.setFont(font); g.fill3DRect(10,400,60,40,true); if(!StartThread) { g.setColor(Color.BLACK); g.drawString("Start", 20, 420); } else { g.setColor(Color.RED); g.drawString("Stop", 20, 420); } //----------------------------- //The pink oval Color myColor=new Color(10,20,210); font = new Font("Arial",Font.ITALIC, 48); g.setColor(myColor); g.fillOval(10,210,350,100); g.setColor(Color.yellow); g.setFont(font); g.drawString("Hello World!!!",40,275);
////////////////////////// //Pole information MouseEvent myColor=new Color(0xA2,0xA2,0xA2); g.setColor(myColor); g.fill3DRect(10,10,900,150,false); font=new Font("Times New Roman", Font.TRUETYPE_FONT,20); g.setFont(font); g.setColor(Color.BLACK); g.drawString("X="+X,10,30); g.drawString("Y="+Y,10,60); g.drawLine(10,70,700,70); g.drawString(""+my_comment,10,100); g.drawLine(10,110,700,110); g.drawString(""+EventString,10,140);
////////////ЭКстра параметра g.drawLine(70, 10, 70, 70); g.drawLine(220, 10, 220, 110); g.setColor(Color.LIGHT_GRAY); g.drawString("button=" + button, 100, 30); g.drawString("clickCount=" + clickCount, 100, 60);
}
public void mouseExited(MouseEvent Event) { my_comment=new StringBuffer("I don't see cursor!!!"); repaint(10,0,200,180); } public void mouseEntered(MouseEvent Event) { my_comment=new StringBuffer("I see cursor!!!"); repaint(00,10,200,180); } public void mousePressed(MouseEvent Event) { X=Event.getX(); Y=Event.getY(); my_comment=new StringBuffer("I see cursor!!!"); EventString=new StringBuffer(Event.paramString()); repaint(0,0,1000,180); } public void mouseClicked(MouseEvent Event) { button=Event.getButton(); clickCount=Event.getClickCount(); repaint(10,10,1000,180); } public void mouseReleased(MouseEvent Event) { int x=Event.getX(), y=Event.getY();
if((x>10 && x<70) && (y>400 && y<440 )) { StartThread = (!StartThread);
if(StartThread) { thThread1 = new NewThread("Thread1",300,400,0,static_Label); thThread1.StartThread(); thThread2= new NewThread("Thread2",400,400,0,dynamic_Label); thThread2.StartThread(); } else { thThread1.stop(); thThread1.stop(); } repaint(10, 0, 560, 540); } } //////////////////////////// }
//------------------------------------------------------ class NewThread extends Hello_World implements Runnable { private Thread thThread; private String sNameThread; private int x, y; private int Count; private volatile boolean running; private Label _label; private Label temp;
NewThread() { x=0; y=0; Count=0; sNameThread=new String("Thread"); thThread=new Thread(this); Count=0; } NewThread(String name, int x, int y, int begin_count, Label label) { sNameThread=new String(name); this.x=x; this.y=y; Count=begin_count; thThread= new Thread(this,sNameThread); _label=label; temp=new Label("Temp"); add(temp); }
public void StartThread() { running=true; thThread.start(); }
public void run() { while(running) { Count++; String str=new String(" "+Count); _label.setText(str); //wait(100); } } public void stop() { running = false; } }
Не отображается элемент управления - объект класса Label temp. Остальные отображаются нормально.
|