Заставить мой jProgressBar работать по таймеру от 1 до 100

я просматривал эту ветку

Как сделать обратный отсчет таймера вместе с индикатором выполнения?

Я хотел бы добавить это в свой код, чтобы я мог просто получить jProgressBar и кнопку (предпочтительно с использованием netbeans)

Так что, когда я нажимаю кнопку, она стабильно работает от 0 до 100, я действительно пытался сделать это самостоятельно и очень разозлился, любая помощь была бы приятной.


person Jack    schedule 11.08.2012    source источник
comment
Какой у Вас вопрос? Ps, пожалуйста, не используйте громких слов "Ps" означает постскриптум или пожалуйста?   -  person Andrew Thompson    schedule 12.08.2012
comment
Мне кажется, вы новичок в Swing. Если это так, лучше пока оставить IDE в стороне и использовать старый добрый TEXT-EDITOR, чтобы сделать ваши программы похожими на JEDIT/NOTEPAD/NOTEPAD++/NOTEPAD 2. Так вы узнаете больше и быстрее, чем в IDE, где половина работы скрыта от вас. Как только вы станете достаточно хороши, вы сможете перейти на любую IDE по вашему выбору.   -  person nIcE cOw    schedule 12.08.2012
comment
О, круто, только что увидел это, спасибо, мне просто нравится средство для создания графического интерфейса в Netbeans, но я понимаю, что вы имеете в виду, тогда я перейду на Notepadd ++, спасибо, но также прямо сейчас я не хочу отказываться от этого проекта, видя, как я потратил много времени на это + на графический интерфейс и прочее. спасибо за ответ   -  person Jack    schedule 12.08.2012
comment
Извините за могилу, но чтобы уточнить, я имел в виду постскриптум.   -  person Jack    schedule 14.03.2013


Ответы (1)


Используя пример @Andrew,

изображение

import java.awt.GridLayout;
import java.awt.event.*;
import javax.swing.*;

class CountUpProgressBar extends JPanel {

    private JProgressBar bar = new JProgressBar(JProgressBar.HORIZONTAL, 0, 100);
    private JLabel label = new JLabel("", JLabel.CENTER);
    private Timer timer = new Timer(100, new ActionListener() {

        private int counter = 1;

        @Override
        public void actionPerformed(ActionEvent ae) {
            label.setText(String.valueOf(counter));
            bar.setValue(++counter);
            if (counter > 100) {
                timer.stop();
            }
        }
    });

    CountUpProgressBar() {
        super.setLayout(new GridLayout(0, 1));
        bar.setValue(0);
        timer.start();
        this.add(bar);
        this.add(label);
        JOptionPane.showMessageDialog(null, this);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {

            public void run() {
                CountUpProgressBar cdpb = new CountUpProgressBar();
            }
        });
    }
}
person trashgod    schedule 12.08.2012
comment
См. также setStringPainted(true). - person trashgod; 12.08.2012
comment
:-) ссылка на setStringPainted(true) отсутствует или вы намеренно оставили ее такой? - person nIcE cOw; 12.08.2012
comment
@GagandeepBali: Ах, вы заметили! Да, я намеренно опустил это, так как вопрос задавал 0..100, а не процент. О, вы имеете в виду ссылку в комментарии? Да, тоже преднамеренно, так как я хотел оставить немного веселья для постера. - person trashgod; 12.08.2012
comment
Что ж, на данный момент я все еще немного сбит с толку. Большое спасибо за быстрый ответ (боюсь, меня сегодня не было, поэтому до сих пор не было времени просмотреть его) Хотя мне интересно, могу ли я задать несколько вопросов (скорее всего очень просто и глупо :/) Итак, как бы я добавил это в проект NetBeans, Новый проект -> Java-приложение -> теперь мне нужно создать новый основнойкласс (я полагаю, не из-за одного используется выше) -> ‹пакет по умолчанию› * щелкните правой кнопкой мыши * новый класс java, тогда я немного потерялся, я очень ценю вашу помощь в этом :) большое спасибо. - person Jack; 12.08.2012
comment
Создайте File > New File… > Java Class с именем CountUpProgressBar, замените содержимое примером и нажмите Run > Run File. - person trashgod; 13.08.2012