кейлист и таймер для игры - PullRequest
0 голосов
/ 28 мая 2018

как я могу использовать ключевой слушатель для этого проекта?Я хочу увидеть следующий символ после ввода правильного символа ... Я использовал случайные буквы для своего алфавита.и правильно введенный символ будет плюс 5 секунд к индикатору прогресса, и это поможет вам выжить больше в игре.и как я могу установить его время до первого: 5 секунд = показать 5 лет, второго 5 секунд = показать 6 лет ...?

package test;

import java.awt.*;
import java.util.*; 
import javax.swing.*;

public class singleplayer {

public JFrame frame;
private Timer pt ;
public String rndchar() {

    Random r1 = new Random();
    int b = r1.nextInt(26)+97;
    char show1 =(char) b;

    Random r2 = new Random();
    int l = r2.nextInt(26)+65;
    char show2 =(char) l;

    if (r1.nextInt(2) % 2 == 0 )
    {
        return show1+"";
    }
    else if (r2.nextInt(2) % 2 == 1)
    {
        return show2+"";
    }
    return show2+"";        

}

public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
        public void run() {
            try {
                singleplayer window = new singleplayer();
                window.frame.setVisible(true);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
}

public singleplayer() {
    initialize();
}

private void initialize() {

    frame = new JFrame();
    frame.setBounds(400, 180, 600, 400);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JDesktopPane desktopPane = new JDesktopPane();
    desktopPane.setBackground(Color.WHITE);
    frame.getContentPane().add(desktopPane, BorderLayout.CENTER);

    Font rndchar = new Font("Old English Text MT", Font.PLAIN, 50);
    JLabel lblAlphabet = new JLabel();
    lblAlphabet.setText(rndchar());
    lblAlphabet.setBounds(185, 168, 360, 94);
    desktopPane.add(lblAlphabet);
    lblAlphabet.setFont(rndchar);

    JProgressBar progressBar = new JProgressBar();
    progressBar.setForeground(Color.GREEN);
    progressBar.setValue(100);
    progressBar.setBounds(25, 78, 146, 14);
    desktopPane.add(progressBar);

     pt = new Timer(1000, new ActionListener() {        
        @Override
        public void actionPerformed(ActionEvent arg0) {     
            progressBar.setValue(progressBar.getValue()-1);
            if (progressBar.getValue() == 0) {
                lblAlphabet.setText("Game Over !");
            }   
        }
    });
        pt.start();
}
}
...