れんだら3

RendererTest2

swing.plaf配下のクラス関係を確かめて、再度Swingソースへダイブ。
こんどはうまくいきました。ふぅ〜。

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

public class RendererTest2 extends JPanel {
    JLabel renderer = new JLabel();
    CellRendererPane rendererPane = new CellRendererPane();
    RendererTest2() {
        setLayout(null);
        add(rendererPane);
    }

    public void paintComponent(Graphics g) {
        super.paintComponent(g); //unibonさんありがとう
        System.out.println("paintComponent(g)?");
        for (int y = 0; y < 10; y++) {
            for (int x = 0; x < 10; x++) {
                renderer.setText("(" + x + "," + y + ")");
                renderer.setHorizontalAlignment(JLabel.CENTER);
                rendererPane.paintComponent(g, renderer, this, x*100, y*20, 100, 20, true);
            }
        }
        rendererPane.removeAll();
    }

    public static void main(String[] args) {
        JFrame frame = new JFrame();
        RendererTest2 test = new RendererTest2();
        frame.getContentPane().add(test);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(640, 480);
        frame.setVisible(true);
    }
}