Witam,
mam dwa pytania:
- Czemu po nacisnięciu spacji ilość pocisków ( na ekranie) się nie zmniejsza?
- Czy da się zrobić tak, że gdy nacisnę "r" to najpierw pojawi sie tekst "przeładowanie", a dopiero potem program "poczeka" 2 sekundy?
Z góry dzięki za wszystkie odpowiedzi
package strzelanie;
import java.awt.;
import javax.swing.;
import java.awt.event.*;
public class strzal extends JFrame implements KeyListener {
public static void main(String[] args) {
new strzal();
}
int pociski = 9;
JTextField keyText = new JTextField(80);
JLabel keyLabel = new JLabel ( "Naciśnij przycisk strzał");
JLabel kontrola;
Font normalFont = new Font("Times New Roman", Font.PLAIN, 20);
strzal (){
keyText.addKeyListener(this);
setSize(400, 400);
kontrola = new JLabel("SPACJA - strzał, R - przeładuj, pociski = " + pociski );
setVisible(true);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
BorderLayout layout = new BorderLayout();
setLayout(layout);
add(keyLabel, BorderLayout.NORTH);
add(keyText, BorderLayout.CENTER);
add(kontrola, BorderLayout.SOUTH);
kontrola.setFont(normalFont);
}
@Override
public void keyPressed(KeyEvent e) {
int keyCode = e.getKeyCode();
if(keyCode == KeyEvent.VK_SPACE) {
keyLabel.setText("Nacisnąłeś przycisk strzał");
pociski--;
}else if(keyCode == KeyEvent.VK_R) {
keyLabel.setText("przeładowanie");
pociski = 9;
try {
Thread.sleep(2000);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}else {
keyLabel.setText("Zły przycisk");
}
}
@Override
public void keyReleased(KeyEvent arg0) {
}
@Override
public void keyTyped(KeyEvent arg0) {
//niepotrzebna
}
}