Я пытаюсь заставить этот JLabel двигаться, я перепробовал все и каждый код, но он просто не будет работать.Кажется, это никогда не работает, я поместил repaint()
везде, где это имело бы смысл, а также код движения, и он все еще, кажется, не работает так, как раньше.Я просто не пытался сделать это с импортированным изображением, так как было также трудно найти хороший способ сделать это.
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.ImageIcon;
public class Move extends JFrame {
private JPanel contentPane;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Move frame = new Move();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Move() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JLabel label = new JLabel("");
label.setIcon(new ImageIcon(Move.class.getResource("/images/Untitled-2.png")));
label.setBounds(192, 130, 87, 58);
contentPane.add(label);
label.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent ke) {
if(ke.getKeyCode() == KeyEvent.VK_DOWN) {
label.setLocation(label.getX(),label.getY()+1);
label.repaint();
}
if(ke.getKeyCode() == KeyEvent.VK_UP) {
label.setLocation(label.getX(),label.getY()-1);
label.repaint();
}
if(ke.getKeyCode() == KeyEvent.VK_LEFT) {
label.setLocation(label.getX()+1,label.getY());
label.repaint();
}
if(ke.getKeyCode() == KeyEvent.VK_RIGHT) {
label.setLocation(label.getX()-1,label.getY());
label.repaint();
}
label.repaint();
}
});
}
}