MouseListener - problem z przyciskiem

0

Witam,
jestem początkująca w programowaniu w Javie. Pisze program, w którym stworzyłam klocek na bazie przycisku. I teraz chciałabym aby po kliknięciu jakiegokolwiek klawisza na klawiaturze klocek przesunął się w lewo np o 30 px. Niestety nie mam pojęcia jak zapisać przesunięcie klocka/przycisku.

import java.awt.Color;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.JButton;
import javax.swing.JFrame;


public class Zdarzenia extends JFrame implements MouseListener, KeyListener {
	
	private JButton klocek;
	
	public Zdarzenia() {
		
		setSize(300,300);
		setTitle("Klocek");
		setLayout(null); //layout menadzer
		
		klocek = new JButton();
		klocek.setBounds(90, 80, 100, 100);
		klocek.addMouseListener(this);
		klocek.addKeyListener(this);
		add(klocek);
	}

	public static void main(String[] args) {
		
		Zdarzenia okno = new Zdarzenia();
		okno.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		okno.setVisible(true);
		
	}

	//zdarzenia myszki
	
	@Override
	public void mouseClicked(MouseEvent e) {
		
		klocek.setBackground(Color.BLUE);
		
	}

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

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

	@Override
	public void mousePressed(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void mouseReleased(MouseEvent e) {

		// TODO Auto-generated method stub
		
	}
	
	//zdarzenia klawiatury
	

	@Override
	
	public void keyPressed(KeyEvent arg0) {
		
		klocek.m
		
	}
	

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

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

	
	
	
	
}

0

Podstaw pod jakąś zmienną położenie przycisku i po kliknięci klawisza dodaj/odejmij 30 i potem daj repaint().

0

@up, trochę za mało.

        public void keyPressed(KeyEvent arg0) {
 
            x-=30;
            klocek.setBounds(x,y, 100, 100);
            repaint();
 
        }
0

dzięki za radę :)
pomogło

1 użytkowników online, w tym zalogowanych: 0, gości: 1