Counter GUI in Swing, updating the count in the background
To answer your question:


  Q. Is this a bad idea?  


A. No, it's fine in your case, but creating a new Thread is easier, like this:

private void createButton() {
    button = new JButton("Start counter");
    button.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            button.setEnabled(false); // can't click while counter is running
            Thread background = new Thread(new Runnable() {
                @Override
                public void run() {
                    for (int i = 0; i &lt;= 50; i++) {
                        try {
                            Thread.sleep(100);
                        } catch(InterruptedException e) {
                            e.printStackTrace();
                        }
                        System.out.println(i);
                        count.setText(Integer.toString(i));
                    }
                    button.setEnabled(true); //click-able after the counter ends
                }
            });
            background.start();
        }
    });
}




There are some things you can fix in your code to improve it:


Use of throws Exception in your doInBackGround method. throwing Exception is not good to use because it is vague, and unnecessary in your case. Just throw InterruptedException instead.

@Override
protected Void doInBackground() throws InterruptedException {
    //...
}

Error. This line: text.setText(Integer.toString(i)); throws an Error: "text cannot be resolved." I believe you meant to do: count.setText(Integer.toString(i));
activate() method. Make your life easier by cutting down a few lines: Just set the frame visible in your constructor, like this:

public CounterView() {
    customizeFrame();
    createMainPanel();
    createCountText();
    createButton();
    addComponentsToFrame();
    frame.setVisible(true);
}


This removes the need for your activate method completely.
Notice that if you click the button twice, then 2 counters start? I don't think you want that. disable the button after it is clicked to avoid this. Example:

private void createButton() {
    button = new JButton("Start counter");
    button.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            button.setEnabled(false); //added this line
            //...





Other than those, your code looks good. good indentation, variable names, method names, etc.