Şimdi Ara

Yeni Bir java kod sıkıntısı :( Yardımcı Olabilecek ??

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
10
Cevap
0
Favori
901
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Arkadaşlar karekteri alıyorum yazıyorum ama nedense backspace ile sadece 1 tane harf siliyor sonra kalıyor sorun ne çözemedim


     
    import javax.swing.JFrame;

    import java.awt.Graphics;
    import java.awt.event.KeyEvent;
    import java.awt.event.KeyListener;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseListener;
    import java.util.Random;


    public class BizimPencere extends JFrame implements MouseListener,KeyListener {

    private Random rnd ;
    private int x1,y1,x2,y2;
    private String yazi;
    public BizimPencere()
    {
    super();
    addMouseListener(this);//burda masueyı ekledik
    addKeyListener(this);// burda klavye işlemleri ekledik
    x1=0;
    x2=0;
    y1=0;
    y2 =0;
    yazi="Merhaba";


    }

    public void paint(Graphics g)
    {
    super.paint(g);
    g.drawLine(x1,y1,x2,y2);
    g.drawString(yazi, x1, y1);
    }

    @Override
    public void mouseClicked(MouseEvent e) {// burda tıkladıktan sonra kaldrımazsak cızgı degısmıyor

    }

    @Override
    public void mouseEntered(MouseEvent arg0) {
    // TODO Auto-generated method stub

    }

    @Override
    public void mouseExited(MouseEvent arg0) {
    // TODO Auto-generated method stub

    }

    @Override
    public void mousePressed(MouseEvent e) { // burda mouse tıklamamız yeterlı
    if(e.getButton()==e.BUTTON1)
    {
    x1=e.getX();
    y1=e.getY();
    }
    else if(e.getButton()==e.BUTTON3)
    {
    x2=e.getX();
    y2=e.getY();
    }
    repaint(); // bu olmasaydı ekrn tekrar cızılmezdı ve bızım tıklamamızda pencereyi asagı ındırmedıgımız
    //surece cizgi olusmazdı bu JFramede tanımlı oldugundan dırek boyle dedık.
    }

    @Override
    public void mouseReleased(MouseEvent arg0) {
    // TODO Auto-generated method stub

    }

    @Override
    public void keyPressed(KeyEvent g) {

    if(g.getKeyCode()==g.VK_BACK_SPACE && yazi.length() > 0)
    {
    yazi = yazi.substring(0,yazi.length()-1); //yazi bir string oldugundan yaznın metodları kullanılabilir
    //0 dan yazının boyutunun 1 eksıgını sılme ışlemn yapar
    }
    else
    {
    yazi+= g.getKeyChar();
    }
    repaint();

    }

    @Override
    public void keyReleased(KeyEvent arg0) {
    // TODO Auto-generated method stub

    }

    @Override
    public void keyTyped(KeyEvent g)//keyTyped sadece harfleri ve sayıları algılamakta olan kısımdır
    {
    // g.VK_ALPHANUMERIC girdinin yazı veya sayı oldugunu kontrol eder

    yazi = yazi + g.getKeyChar();// bu fonksıyon basılan karekteri alır.
    //HER KAREKTERI YApamıyor yani silme işlemi olmuyor
    repaint();
    //key code burda kullanılamıormus pressde kullanılıcak
    /*if(g.getKeyCode()== g.VK_ALPHANUMERIC) // VK_ALPHANUMERIC girdinin yazı veya sayı oldugunu kontrol eder
    {
    yazi = yazi + g.getKeyChar();// bu fonksıyon basılan karekteri alır.
    //HER KAREKTERI YApamıyor yani silme işlemi olmuyor
    }
    else if(g.getKeyCode()==g.VK_BACK_SPACE)
    {
    yazi = yazi.substring(0,yazi.length()-1); //yazi bir string oldugundan yaznın metodları kullanılabilir
    //0 dan yazının boyutunun 1 eksıgını sılme ışlemn yapar

    }
    repaint();*/
    }

    }



    < Bu mesaj bu kişi tarafından değiştirildi NsncHunter1 -- 19 Şubat 2014; 20:03:49 >







  • Sırayla ekrana gırılen karekterlerin slinmesi lazım bastıkca ama 1 tane sildikten sonra kalıyor
  • .deleteChartAt() fonksiyonu ile istediğimiz harfi veya kelimeyi silebiliriz. Bu fonksiyonu incelemeni tavsiye ederim.

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • Arkadaslar bi soruda ben soriyim . Java Servletde out.print yapiyorum 10 adet ama goruntuledigimde hic bosluk birakmadan yan yana yaziyor nasil bosluk birakcaz satir aralarinda?
  • s_mail S kullanıcısına yanıt
    Hocam o fonskıyonu kullanmak ıcın StringBuffer yazi = new StringBuffer("Merhaba");
    diye degiştırdım ve altta tarafdakı sılme ıslemınde de
    yazi=yazi.deleteCharAt(yazi.length()); yazdım burda hata vermedı derleyıcı ama bu sefer sıkıntı pencereye yazdırma fonksıyonunda cıktı

    g.drawString(yazi, x1, y1); burda hata vermeye başladı cunku string alıyor fonksıyon
  • NsncHunter1 N kullanıcısına yanıt
    şöyle bir yol izleyebilirsiniz. öncelikle .length sınıfı ile tüm stringin uzunluğunu alıp en son bir tanesini silebilirsin.
    Pcde yaptım oldu. şu kodu dene

    import java.util.Scanner; 


    public class ders2 {
    public static void main(String args[]){
    Scanner giris = new Scanner(System.in);
    String s1="anadolu";
    int q;

    System.out.println("Bir kelime giriniz. ");

    s1=giris.nextLine();


    q= s1.length()-1;
    System.out.println("Son karakter atıldı");
    System.out.println(s1.substring(0,q));//kesmek için kullanılır.



    }
    }


    bu kod ile kullanıcıdan gelen stringin son harfini silebilirsin. bunu kendi programına adapte edebilirsin.



    < Bu mesaj bu kişi tarafından değiştirildi s_mail -- 19 Şubat 2014; 18:49:39 >
  • s_mail S kullanıcısına yanıt
    Hocam aynı kod benimkıyle gordugum kadarıyla tek farkı q= s1.length()-1; dıyp
    System.out.println(s1.substring(0,q)) yazılmıs bendede
    bu yazi = yazi.substring(0,yazi.length()-1) sekilde yazıyor yani aynı şeyler
    Eger daha farklı birşey görmem gerekiyorsa söyleyebilir misiniz



    < Bu mesaj bu kişi tarafından değiştirildi NsncHunter1 -- 19 Şubat 2014; 21:38:25 >
  • NsncHunter1 N kullanıcısına yanıt
    sizin kodu derlemek istedim hata verdi ama şöyle yapabilirsiniz.

    g.getKeyCode()==g.VK_BACK_SPACE bunun altında bir int değeri olsun ve bu tuşa her basışta int değerimiz bir artsın.
    stringin gösterilme yerinde ise

    bu yazi = yazi.substring(0,yazi.length()-(integer değerimiz)) bu kod ile her silme tuşuna bastığımızda stringden bir değer silebiliriz. yalnız dikkat etmemiz gereken bir şey var
    eğerki int değerimiz strin.lenght() değerinden büyük olamaz yoksa derleyici hata verir.
    Böyle deneyin bu sefer olacaktır
  • s_mail S kullanıcısına yanıt
    Hocam boyle bir seyde yanlıs olur çünkü her artısta ılkınde 1 karekter ıkıncıde 2 karekter 3üncüde 3 karekter sılıyor yanı fazladan sılıyor her basısımda tek karekter sılmesını ıstıyorum sen programı denemeden mi bana söylüyon bakiyim :)
  • quote:

    Orijinalden alıntı: Onur1111110

    Arkadaslar bi soruda ben soriyim . Java Servletde out.print yapiyorum 10 adet ama goruntuledigimde hic bosluk birakmadan yan yana yaziyor nasil bosluk birakcaz satir aralarinda?

    system.out.println("") komutunu kullanırsan sorunun çözülmüş olacaktır
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.