Re: [Linux-programlama] Java applet ClassNotFoundException

---------

New Message Reply About this list Date view Thread view Subject view Author view Attachment view

From: Bora Güngören (bora@boragungoren.com)
Date: Sat 17 Sep 2005 - 18:47:48 EEST


Merhaba,

Uygulamada uyutan kanalının run() yöntemi içindeki while döngüsünde her
turda bir kere daha kanal yaratıp başlatıyor gibisiniz. Ayrıca ikinci
kanal olan gorsel kanalının bitme durumundan sonra doğrudan
invokeAndWait ile çalışmaması söz konusu olabilir. Bu şekilde bir kodu
hiç denemedim. :-) Bu nedenle sanırım sürekli olarak ilk ekran yeni
(sıfırdan oluşan) bir ekranla yer değiştiriyor yada öyle bir şey.
Çalıştırmadan emin olamam ama bana öyle gözüktü. :-)

Bunun dışında Applet'i görsel hale getirmeniz ile JFrame'e eklemeniz de
biraz karışık duruyor. Kodu aşağıdaki biçimde yazarsanız konsol
uygulaması daha anlaşılır olacaktır.

public class Yukle{

    public static void main(String args[]){

       JFrame cerceve = GUIBuilder.createGUIFrame( "Eylul16" );
                      // Bu standart bir ekran oluşturacaktır. Fazladan
bir sınıf yazıyorsunuz ama
                      // her bir ekranı oluşturması çok kolay olacaktır.
                      // Bu arada ekranın kanallardan bağımsız "aptal"
bir JavaBean olacağına dikkat
       GUIGosterenKanal gkk = new GUIGosterenKanal(cerceve);
                      // Bu kanal sadece çerçevenin setVisible(), show()
vb yöntemleri ile oynayıp
                      // ekranda "sadece bir kere" gösterecektir. Daha
sonra zaten Swing olayları işi
                      // devralacaktır.
       GUIGuncelleyenKanal ggk = new GUGuncelleyenKanal(cereceve);
                      // Güncelleyen kanal, uyandıktan sonra JFrame'e
referans sahibi olduğundan
                      // onun aktif olup olmadığını kontrol eder,
aktifse güncellemesini yapar. repaint()'ini çağırır.
 
                      // Bu iki kanal da herhangi bir JFrame ile
çalışacak biçimde düşünülebilir.
                      // Ancak bu şekilde genel amaçlı yazılması bayağı
dikkat istiyor.
      try {
        SwingUtilities.invokeAndWait(gkk);
        ggk.start();
       }
       catch(Exception e){ /* */}
    }

}

Daha sonra main() yöntemi içinde duran bu biçimdeki kodu JApplet'in
yöntemlerine dağıtmanız çok daha kolay olur.

İyi Çalışmalar.

Bora Güngören.

Ali Dereli wrote:

> Merhaba;
>
> anlattıklarınız sonucunda iki thread olusturdum. birinden sadece
> repaint() yaptırıyorum digerinde ise uyutma işlemini. aslında pek cok
> alternatif denedim ama anlattıklarınıza en yakını bu oldu. lakin
> konsoldan calısmakla birlikte browserdan hala calısmıyor. yine şu
> şekilde anlatıyım:
>
> public class eylul16 extends JApplet {
>
> eylul16Panel panel;
> int prioriti;
> public void init(){
> getContentPane().setLayout(new BorderLayout());
> panel = new eylul16Panel();
>
> final Thread gorsel=new Thread(){
> public void run() {
> repaint();
> System.out.println("görsel run cagrısı");
> }
> };
> // bu thread sadece repaint yapıyor.
> prioriti=gorsel.getPriority()-1;
>
> Thread uyutan=new Thread(){
> public void run() {
>
> while(true){
> try{
> SwingUtilities.invokeAndWait(gorsel);
> }
> catch(Exception ex){
> System.out.println("hata olustu" + ex);
> }
> // burayı sizden kopya cektim
> try{
> this.sleep(1000);
> }
> catch(Exception ex){
> System.out.println ("hata olustu" + ex);
> }
> panel.artir();
> // panel nesnesine ekledigim bir fonkisyon. int bir
> degiskeni artırıyor.
> System.out.println("uyutan run cagrısı");
>
> }
> }
> };
> uyutan.setPriority(prioriti);
> uyutan.start();
> );
> }
> public static void main(String s[]) {
> JApplet applet = new eylul16();
> JFrame f = new JFrame("..................");
> f.addWindowListener(new WindowAdapter() {
> public void windowClosing(WindowEvent e) {System.exit(0);}
> });
> f.getContentPane().add(applet, BorderLayout.CENTER);
> applet.init ();
> f.setSize(new Dimension(1000,600));
> f.setVisible(true);
> }
> }
> browserdaki java console cıktısı
>
> görsel run cagrısı
>
> uyutan run cagrısı
>
> görsel run cagrısı
>
> uyutan run cagrısı
>
> görsel run cagrısı
>
> neden hala repaint'i duymazdan geliyor anlamıs degilim.
>
> >Yıl sonuna doğru çıkacak olan üçüncü Java kitabımda da bu türde bir
> iki Applet / >Swing örneği bulunacak.
> umuyorumki faydalı olucak.
>
>
>
>------------------------------------------------------------------------
>
>_______________________________________________
>Linux-programlama mailing list
>Linux-programlama@liste.linux.org.tr
>http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>

_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama


New Message Reply About this list Date view Thread view Subject view Author view Attachment view

---------

Bu arsiv hypermail 2.1.2 tarafindan uretilmistir.