This Java Swing tip illustrates a method of dynamically updating the appearance of a component. The tip uses the revalidate() method to dynamically update the appearance of a component. This example changes the size of a button's font on the fly.

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

public class RevalidateExample extends JFrame {
    public RevalidateExample() {
        super("Revalidation Demo");
        // Create a single button
        Font font = new Font("Dialog", Font.PLAIN, 10);
        final JButton b = new JButton("Add");
        Container c = getContentPane();
        c.setLayout(new FlowLayout());
        // Increase the size of the button's font each time it's clicked
        b.addActionListener(new ActionListener() {
            int size = 10;
            public void actionPerformed(ActionEvent ev) {
                b.setFont(new Font("Dialog", Font.PLAIN, ++size));
    // invalidates the button & validates its root pane
    public static void main(String[] args) {
        RevalidateExample re = new RevalidateExample();