Как перерисовать JPanel после того, как на нем нарисовали?

У меня есть компонент, унаследованный от JPanel, я рисую сетку на Это. Теперь у меня есть JComboBox, и я хочу, чтобы пользователь мог выбрать здесь размер сетки, а затем нажать кнопку, чтобы изменить сетку (перерисовать сетку).

Дело в том, что он рисует исходную сетку, но один раз пользователь выбирает размер сетки из JComboBox и нажимает кнопку, ничего не происходит. Мне нужно свернуть форму, а затем восстановить ее снова, чтобы увидеть изменения.

Есть идеи? Код приведен ниже.

Компонент:

public class Board extends JPanel {
    ...

    protected void paintComponent(Graphics og) {
        super.paintComponent(og);
        ...
        }
    }    
}

Основной класс

public class Main extends javax.swing.JFrame {
...

public Main() {                                   //This works great.
    board = new Board( ... );
    somePanel.add(board, BorderLayout.CENTER);

}

public void someButtonActionPerformed(Event e) { //This is not working

    somePanel.remove(board);
    board = new Board( ... );
    somePanel.add(board);
    somePanel.invalidate()
    board.repaint();
}
8
задан Eric Leschinski 8 June 2015 в 05:41
поделиться