Я просто играю с Swing и работаю над очень простым компонентом Swing. У меня есть компонент, унаследованный от JComponent
класса и его пользовательский интерфейс унаследован от 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 высоты (независимо от минимального значения).