İç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 Buton Hareketi

bilgehanl.0329.07.20131 cevap5.602 görüntüleme
2012'den beri47 mesaj
#1
Merhaba;
İsediğim program, butona basınca butonun bir piksel sağa kayması. Yazdığım kodlar aşağıda yalnız hem buton hareket etmiyor. Hem butonun koordinatları bir kere yükseliyor ve başka yükselmiyor. Nedenini bilen veya düzeltebilecek arkadaşlar yardım ederse sevinirim.
package Denemepac4;

import javax.swing.WindowConstants;


public class MainClass {
	public static void main(String[] args) {
		
		FrameClass frm = new FrameClass();
		frm.setVisible(true);
		frm.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
		
		
	}


}




package Denemepac4;





import java.awt.Color;
import java.awt.FlowLayout;


import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.Border;


public class FrameClass extends JFrame {
		private int x;
		private int y;
	    public int getX() {
			return x;
		}
		public void setX(int x) {
			this.x = x;
		}
		public int getY() {
			return y;
		}
		public void setY(int y) {
			this.y = y;
		}
		private JButton btn1;
		private JPanel pnl1;
	public FrameClass() {
		this.setLayout(null);
		this.setSize(500, 500);
		btn1 = new JButton("Click");
		pnl1 = new JPanel();
		this.getContentPane().add(pnl1);
		pnl1.setBounds(20, 20, 300, 300);
		pnl1.setLayout(null);
		pnl1.setBackground(Color.GRAY);
		pnl1.add(btn1);
		btn1.setBounds(getX(), getY(), 100, 50);
		ButonClass olay = new ButonClass();
		btn1.addActionListener(olay);
		
		
	}
	
	
}

package Denemepac4;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;


public class ButonClass implements ActionListener {
	
	@Override
	public void actionPerformed(ActionEvent e) {
		System.out.println("Merhaba");
		FrameClass blg = new FrameClass();
		
		int a = blg.getX();
		 a++;
		 
		 blg.setX(a);
		 System.out.println(blg.getX());


		
	}
	


}


Cevaplar
2007'den beri2.589 mesaj
#2
selamlar,

Sadece aşağıdaki class'ı biraz değiştirdim. ActionListener'den aldığın action'un source'si senin button'u cast ile sana verir. Yeni buton oluşturmak hiç bir işe yaramaz. Zira sen onu koyacak bir JFrame sahibi bile değilsin action listener'de :)

package Denemepac4;


import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;




public class ButtonClass implements ActionListener {


    @Override
    public void actionPerformed(ActionEvent e) {
        System.out.println("Merhaba");
        JButton b = (JButton)e.getSource();


        int x = b.getX();
        int y = b.getY();
        int h = b.getHeight();
        int w = b.getWidth();
        x++;


        b.setBounds(++x, ++y, w,h);
        System.out.println(b.getX());
    }
}



Ayrıca Naming Convention'lara uyman sana ileride fayda sağlar. ButtonClass bende hiç bir zaman bir actionListener intibası uyandırmaz mesela.

Cevabını yaz

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