我只是在玩 Swing,并且正在开发一个非常简单的 Swing 组件。我有一个从JComponent
class 继承的组件,它的 UI 继承自ComponentUI
. 该paint()
方法如下所示:
public void paint(Graphics g, JComponent c) {
int x = c.getX();
int y = c.getY();
c.setBounds(x, y, 100, 25);
int width = c.getWidth();
int height = c.getHeight();
Rectangle r = g.getClipBounds();
g.fillRect(0, 0, 10, 10);
g.drawString("Baf!", 3, 3);
}
但是完全不可能得到r.height
大于 1 的另一个值。组件是给定的宽度,但高度总是只有一个点。有没有其他人使用过类似的组件?不幸的是,没有任何简单的教程。所有教程都是难以理解的复杂(或过时)。
似乎布局管理器将此组件的大小始终调整为 1 高度(无论最小值)。