JLabel не появляется, когда должен

У меня есть приблизительное представление, почему JLabel не появляется. Однако я не могу понять, как заставить его отображаться. Там, где написано «добавить (tf1); он не открывается в JFrame. Заранее спасибо. (tf1 и 2 — это метки, а не текстовое поле). Код — клики в секунду. Просто что-то простое, над чем я работаю. ( этот класс - один из многих, которые у меня есть, если они вам тоже нужны, просто прокомментируйте. Спасибо)

class CPS extends JFrame implements ActionListener{
     JPanel panel;
    JButton button;
    JLabel tf1, tf2;
    boolean running;
    int totalClicks = 0;
    int clicksLeft = 100-totalClicks;
      static float ars;;
    int startInt = 0;
    CPS(){
         panel=new JPanel();
          JFrame d= new JFrame("Clicks Per Second");  
          button = new JButton("Click here for 5 Seconds");
        
          
          
        
         
          
          
          
        
          add(button);
         button.setBounds(0,0,500,400);
           button.addActionListener(this);
           setLayout(null);
           setSize(500, 500);
           setVisible(true);
           
          
           
         
    }
    
    
    @Override
    public void actionPerformed(ActionEvent a) {
         if(a.getSource()==button){  
             totalClicks++;
             
             showClicks();
            
             revalidate();    
             startInt++;
             if(startInt == 1) {
                 timer();
             }
            
            }
        
    }
    public void timer() {

        final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);

        final Runnable runnable = new Runnable() {
        int countdownStarter = 5;
final double divInt = countdownStarter;
            public void run() {

//                System.out.println(countdownStarter);

                
                
                countdownStarter--;

              
                
                if (countdownStarter < 0) {
                    System.out.println("Times Up!");
                    scheduler.shutdown();
                    final float finalClicks = (float) (totalClicks/divInt);
                    System.out.println("Your clicks per second: " + finalClicks);
                    ars = finalClicks;
                    
                    button.setEnabled(false);
                    
                    tf1 = new JLabel("Your Total Clicks: " + totalClicks);
                  tf1.setBounds(50,410, 200, 20);
                
                  tf2 = new JLabel("Average Clicks/Second: "+ totalClicks/5);
                  tf2.setBounds(50, 440, 200, 20);
                  
                  add(tf1);
                 add(tf2);
                 revalidate();
                }
            }
        };
        
        
        scheduler.scheduleAtFixedRate(runnable, 0, 1, SECONDS);
    }
    
    public void showClicks() {
        
        System.out.println(totalClicks);
            
    }
    
}
3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
0
0
6
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Код отсутствует

           String score = String.valueOf("Total Clicks: " + totalClicks);
          tf1.setText(score);

И

          String avg = String.valueOf("Average: " +finalClicks);
        tf2.setText(avg);

Окончательный код должен быть:

class CPS extends JFrame implements ActionListener{
JPanel panel;
JButton button;
JLabel tf1, tf2;
boolean running;
int totalClicks = 0;
int clicksLeft = 100-totalClicks;
 static float ars;;
int startInt = 0;
CPS(){
panel=new JPanel();
 JFrame d= new JFrame("Clicks Per Second");  
 button = new JButton("Click here for 5 Seconds");

 
 


 
 tf1 = new JLabel("");
 tf2 = new JLabel("");

   
   add(tf1);
  add(tf2);

 add(button);
 
 tf1.setBounds(50,400, 200, 20);
   
         
   tf2.setBounds(50, 440, 200, 20);
   
   
button.setBounds(0,0,500,400);
  button.addActionListener(this);
  setLayout(null);
  setSize(500, 500);
  setVisible(true);
 
 
 

}


@Override
public void actionPerformed(ActionEvent a) {
if(a.getSource()==button){  
        totalClicks++;
       
        showClicks();
       
        revalidate();  
        startInt++;
        if(startInt == 1) {
        timer();
        }
       
       }

}
public void timer() {

        final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);

        final Runnable runnable = new Runnable() {
        int countdownStarter = 5;
final double divInt = countdownStarter;
            public void run() {

//                System.out.println(countdownStarter);

               
               
                countdownStarter--;

             
               
                if (countdownStarter < 0) {
                    System.out.println("Times Up!");
                    scheduler.shutdown();
                    final float finalClicks = (float) (totalClicks/divInt);
                    System.out.println("Your clicks per second: " + finalClicks);
                    ars = finalClicks;
                   
                    button.setEnabled(false);
                   
                   
         
         
         
           String score = String.valueOf("Total Clicks: " + totalClicks);
          tf1.setText(score);
         
          String avg = String.valueOf("Average: " +finalClicks);
        tf2.setText(avg);

         
           invalidate();
           validate();
           repaint();
                }
            }
        };
       
       
        scheduler.scheduleAtFixedRate(runnable, 0, 1, SECONDS);
    }

public void showClicks() {

System.out.println(totalClicks);

}

}

Другие вопросы по теме