Wie repaint ein JPanel nach sich gezogen haben, auf Sie?

Habe ich eine Komponente erbt von JPanel, ich zeichne ein Gitter drauf. Jetzt habe ich eine JComboBox, und ich möchte die Benutzer werden in der Lage, wählen Sie die raster-Größe und drücken Sie dann die a-Taste, um das raster ändern (repaint grid).

Die Sache ist, dass es Farben die erste Netz, aber sobald der Benutzer wählt eine Rastergröße von der JComboBox und auf den button klickt, passiert nichts. Ich habe zu minimieren, die form und dann wiederherstellen, um die änderungen zu sehen.

Irgendwelche Ideen? Der Code ist unten.

Der Komponente:

public class Board extends JPanel {
    ...

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

Main-Klasse

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();
}
InformationsquelleAutor Aerozeek | 2010-12-08
Schreibe einen Kommentar