Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Исправьте код на Java

Максим Котов Ученик (134), на голосовании 5 месяцев назад
 import javax.swing.*; 
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class TimerApp {
public static void main(String[] args) {
JFrame frame = new JFrame("Таймер 2000");
frame.setSize(720, 1600);
frame.setResizable(false);
frame.getContentPane().setBackground(java.awt.Color.BLACK);

JLabel title = new JLabel("Таймер 2000");
title.setForeground(java.awt.Color.GREEN);
title.setBackground(java.awt.Color.BLACK);
title.setFont(new Font("Helvetica", Font.BOLD, 18));
title.setBounds(600, 10, 100, 30);
frame.add(title);

JLabel version = new JLabel("version: Alpha 1.0");
version.setForeground(Color.GRAY);
version.setBackground(Color.BLACK);
version.setBounds(600, 100, 100, 30);
frame.add(version);

JLabel generalTimer = new JLabel("1:00:00");
generalTimer.setForeground(Color.RED);
generalTimer.setBackground(Color.BLACK);
generalTimer.setFont(new Font("Helvetica", Font.BOLD, 18));
generalTimer.setBounds(600, 60, 100, 30);
frame.add(generalTimer);

JButton startTimer = new JButton("Старт");
startTimer.setForeground(Color.BLUE);
startTimer.setBackground(Color.GREEN);
startTimer.setFont(new Font("Helvetica", Font.BOLD, 18));
startTimer.setBounds(600, 200, 100, 30);
startTimer.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
timer(generalTimer);
}
});
frame.add(startTimer);

frame.setLayout(null);
frame.setVisible(true);
}

public static void timer(JLabel generalTimer) {
try {
Thread.sleep(600000);
generalTimer.setText("1:50:00");
Thread.sleep(600000);
generalTimer.setText("40:00");
Thread.sleep(600000);
generalTimer.setText("30:00");
Thread.sleep(600000);
generalTimer.setText("20:00");
Thread.sleep(600000);
generalTimer.setText("10:00");
Thread.sleep(600000);
generalTimer.setText("00:00");
} catch (InterruptedException ex) {
ex.printStackTrace();
}
}
}
Скорее всего здесь ОЧЕНЬ МНОГО ошибок
Дополнен 6 месяцев назад
Вопрос только для программистов на Java
Голосование за лучший ответ
RatÆCat Оракул (58083) 6 месяцев назад
Нет
Максим Котов Ученик (134) 6 месяцев назад
Что нет? Что ли ты имеешь ввиду то что нет ошибок?
RatÆCatОракул (58083) 6 месяцев назад
Что делать не буду
Максим Котов Ученик (134) 6 месяцев назад
Ну и ладно
Татьяна Просветленный (36384) 6 месяцев назад
Ваш код действительно содержит несколько ошибок и потенциальных проблем, которые следует исправить. Исправленный код с комментариями по изменениям:
Импорты для Color и Font должны быть явными.Нужно установить правильное расположение компонентов на панели.Таймер должен обновлять значение в отдельном потоке для правильной работы UI.Логика таймера должна быть корректной и уменьшать время.

 import javax.swing.*;  
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class TimerApp {
public static void main(String[] args) {
JFrame frame = new JFrame("Таймер 2000");
frame.setSize(720, 400);
frame.setResizable(false);
frame.getContentPane().setBackground(Color.BLACK);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setLayout(null);

JLabel title = new JLabel("Таймер 2000");
title.setForeground(Color.GREEN);
title.setBackground(Color.BLACK);
title.setFont(new Font("Helvetica", Font.BOLD, 18));
title.setBounds(300, 10, 150, 30);
frame.add(title);

JLabel version = new JLabel("version: Alpha 1.0");
version.setForeground(Color.GRAY);
version.setBackground(Color.BLACK);
version.setBounds(300, 50, 150, 30);
frame.add(version);

JLabel generalTimer = new JLabel("01:00:00");
generalTimer.setForeground(Color.RED);
generalTimer.setBackground(Color.BLACK);
generalTimer.setFont(new Font("Helvetica", Font.BOLD, 18));
generalTimer.setBounds(300, 90, 150, 30);
frame.add(generalTimer);

JButton startTimer = new JButton("Старт");
startTimer.setForeground(Color.BLUE);
startTimer.setBackground(Color.GREEN);
startTimer.setFont(new Font("Helvetica", Font.BOLD, 18));
startTimer.setBounds(300, 130, 100, 30);
startTimer.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
new Thread(() -> timer(generalTimer)).start();
}
});
frame.add(startTimer);

frame.setVisible(true);
}

public static void timer(JLabel generalTimer) {
try {
int hours = 1;
int minutes = 0;
int seconds = 0;

while (hours > 0 || minutes > 0 || seconds > 0) {
// Update the timer label
generalTimer.setText(String.format("%02d:%02d:%02d", hours, minutes, seconds));

// Wait for one secon
Александр Искусственный Интеллект (301774) 6 месяцев назад
код работает?
знаешь что код должен делать?
код сочинял сам?
Максим Котов Ученик (134) 5 месяцев назад
Код работает: нет
знаю что код должен делать: нет
код сочинял сам: нет
Похожие вопросы