İçeriğe geç
ShiftDelete.Net
Haber ara/ SDN'ye SorGiriş
Haber Akışı SDNTV İnceleme Forum Yapay Zeka Akıllı Telefon Elektrikli Otomobil Oyun ShiftDelete.Net Global Teknoloji Haberleri Mobil Otomobil Donanım Savunma Bilim Sosyal Medya İnternet Giyilebilir Teknoloji Rehber Ürünler Son dakika Yazarlar
  1. Ana sayfa
  2. Topluluk
  3. Programlama
  4. Programlama Dilleri
Programlama Dilleri

Java object hakkında bir soru

mutahhar06.07.20116 cevap2.422 görüntüleme
2009'den beri1.537 mesaj
#1
merhabalar...
yazdığım bir metoda dışarıdan bir jlabel ismi atadım.
public void mevki(String yon, String konum,Object s)
    {
       javax.swing.JLabel l = (javax.swing.JLabel) s;
şeklinde.
metodu çağırırken object yerine bi jlabel ismi atadım. derlemede hata vermedi ama çalıştırdığımda istediğim labelin değeri değişmedi. c# da
Label l = (label) sender

ile yaptım ama javada olmadı. bu sorunu nasıl çözebilirim ?
Cevaplar
2009'den beri44 mesaj
#2
Merhaba anladığım kadarıyla; Elinizdeki bir JLabel'i object şeklinde bir methoda gönderip, bu methodun içinde ise, göndermiş olduğunuz object in özelliklerini başka bir labela atayıp kullanmak istiyorsunuz.

ama anlatmak istediğiniz şey biraz karmaşık geldi çünkü label ismi atadım falan demişsiniz (Javada JLabellara isim atayabileceğiniz setName() methodu var, ondan mı bahsettiniz, yoksa değişken adından mı bahsettiniz anlamadım)

eğer yapmak istediğiniz şey şöyle birşeyse çalişiyor bu.

import javax.swing.JLabel;
public class x
{
    public x()
    {
        JLabel l1 = new JLabel();
        // Label Metni
        l1.setText("Yazi");
        // Label adi
        l1.setName("Ad");
        // Label Boyutları (X,Y,Width,Height);
        l1.setBounds(1, 2, 3, 4);
        // Label Ipucu Metni
        l1.setToolTipText("İpucu");
        
        method(l1);
    }
    public void method(Object myLabel)
    {
        JLabel l2 = (JLabel) myLabel;
        System.out.println("Label Degeri : "+l2.getText());
        System.out.println("Label Adi : "+l2.getName());
        System.out.println("Label Boyutları : "+l2.getBounds().toString());
        System.out.println("İpucu : "+l2.getToolTipText());
    }
    public static void main(String[] args)
    {
        new x();
    }
}


mutahhar Konuyu açan
2009'den beri1.537 mesaj
#3
soruda anlatım hatası var özür dilerim :)
verdiğiniz örnekteki yöntemi denedim ama olmadı.
2009'den beri44 mesaj
#4
Yazdığınız kodu paylaşabilir misiniz?
2009'den beri44 mesaj
#6
Selam; sorununuz zannedersem, methodun kendisinden kaynaklanıyor.
public void mevki(String yon, String konum, Object myLabel){}

burda mevki methoduna, GUI'nizdeki JLabel'i, Object olarak gönderiyorsunuz.
Bu methodun içinde, JLabel'in yeni bir kopyasını çıkarıyorsunuz, ve yeni JLabel kopyasıyla bir takım işlemler yapıyorsunuz.

Sorun şu : o yeni çıkarttığınız JLabel kopyası, GUI'nizde bulunan JLabel değil :)
bu methodunuzu şu şekilde değiştirip dener misiniz ?
Methodta gostermek istediğim şey, JLabel'in bir kopyası çıkarılmıyor, direk parametre olarak gonderilen JLabel ile islemler yapiliyor

public void mevki (String hede, String hodo, JLabel lbl)
{
lbl.setText(hede+" "+hodo);
}

Birde, java da acemilik sürecinde, ben GUI creator kullanmaya birazcık karşıyım :)
Çünkü, bu tip yazılımlar kaynak kodu, çok daha karmaşık hale getiriyorlar.
Bu sizin programın bir benzerini, daha basit bir halde yaptım.

İsterseniz inceleyin, faydası olacağına inanıyorum.

Bolbol Açıklamalı Uzun Versiyon : http://www.pastie.org/2178420
Açıklamasız Kısa Versiyon : http://www.pastie.org/2178572

Bu arada, meraktan soruyorum. Bu GPS projeniz, sadece NMEA cumlesi parse etmeklemi alakalı olucak,
yoksa daha sonra GPS cihazından veri okuyup birşeyler yapıcak mısınız ?
:)
mutahhar Konuyu açan
2009'den beri1.537 mesaj
#7
cevabınız için teşekkürler. object yerine jlabel yazmak aklıma gelmemişti :) üzerinden çalıştığım gsm-gps modülü var.

Cevabını yaz

Cevap yazmak için giriş yap ya da üye ol. Eski forum kullanıcı adın ve parolanla girebilirsin.