私はSwingで遊んでいて、本当に単純なSwingコンポーネントに取り組んでいます。クラスから継承されたコンポーネントと。JComponent
から継承された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);
}
ただし、1以外の値を取得することは完全に不可能r.height
です。コンポーネントは指定された幅ですが、高さは常に1ポイントのみです。他の誰かがそのようなコンポーネントを経験したことがありますか?残念ながら、簡単なチュートリアルはありません。すべてのチュートリアルは理解できないほど複雑です(または時代遅れです)。
レイアウトマネージャーは、このコンポーネントのサイズを常に1の高さに変更しているようです(最小値に関係なく)。