Я пытался реализовать таймер для своей программы без успеха. Мне нужен таймер, который может рассчитывать в секундах. Моя идея заключалась в создании таймера, который добавлял 1 к переменной каждую секунду, но я действительно не знаю, как это сделать. Таймер должен начинаться при нажатии кнопки 1 или кнопки2 и останавливаться при нажатии кнопки3. Кстати, мне придется использовать таймер Swing, поскольку это касается программы GUI.Как запустить таймер при нажатии кнопки?
Было бы хорошо, если бы кто-нибудь мог указать мне в правильном направлении. Я искал синтаксис для таймеров в Java, но я этого не понимаю (я новичок в кодировании).
Это код (я оставил некоторый несущественный материал):
public class ColoredWordsExperiment {
JFrame frame;
JButton button1;
JButton button2;
JButton button3;
ButtonHandler buttonHandler;
Timer timer;
ColoredWordsExperiment(){
frame = new JFrame("Colored Words Experiment");
button1 = new JButton("Matching");
button2 = new JButton("Non-matching");
button3 = new JButton("Finished");
buttonHandler = new ButtonHandler(this);
button1.addActionListener(buttonHandler);
button2.addActionListener(buttonHandler);
button3.addActionListener(buttonHandler);
timer = new Timer(1000, buttonHandler);
}
public static void main(String[] arg) {
new ColoredWordsExperiment();
}
}
-
class ButtonHandler implements ActionListener {
ColoredWordsExperiment coloredWords;
public ButtonHandler(ColoredWordsExperiment coloredWords) {
this.coloredWords = coloredWords;
}
@Override
public void actionPerformed(ActionEvent e){
//If button "Matching" is clicked
if (e.getActionCommand().equals("Matching")) {
generateMatching();
timer();
//If button "Non-Matching is clicked
} else if (e.getActionCommand().equals("Non-matching")) {
generateNonMatching();
timer();
//If button "Finished" is clicked
} else if (e.getActionCommand().equals("Finished")) {
//stop timer
}
}
public void timer(){
coloredWords.timer.start();
}
}
Вы хотите показать нам свою попытку решить эту проблему в первую очередь, и вы захотите задать конкретный вопрос или множество вопросов, рассказывающих нам, где именно вы застряли, и что * конкретно * вы не понимаете. Иначе ваш вопрос переводится нам, «пожалуйста, сделайте мою работу для меня», и я уверен, что это не то, что вы имели в виду. Я бы начал с проверки Swing Timers, в том числе Googling, для основного учебника по этому вопросу, а также для поиска на этом сайте, поскольку об этом обычно спрашивают. –
[Поиск в Google] (http://www.google.com/?q=java+swing+timer+tutorial) - проверьте первый хит. Кроме того, пожалуйста, ознакомьтесь с этим [Поиск в StackOverflow] (https://www.google.com/?q=site:stackoverflow.com+java+swing+stopwatch+timer) –
Почему вы не фиксируете дату, когда пользователь нажимает затем нажмите дату, когда они нажимают вторую кнопку, а затем вычитают первую дату со второй даты, чтобы получить разницу в секундах. Не требуется таймер, если вы этого хотите. – brso05