как я могу нарисовать толстую зеленую линию под моим текстом, которая останется под текстом даже при изменении размера, я
Если вы делаете пользовательскую роспись, то основные шаги, которые вы должны выполнитьбудет что-то вроде:
- получить FontMetrics объекта Graphics с помощью метода getFonTMetrics ()
- получить прямоугольник текста с помощью метода getStringBounds (...)
- используйте метод setStroke (...) объекта Graphics2D для установки толщины линии для рисования
- используйте метод DrawLine (...) объекта Graphics2D для рисования линии на основе местоположениятекста и информации прямоугольника из границ строк
Более простое решение для отображения текста - использовать JLabel
. Затем вы можете установить границу метки. Прочитайте раздел из учебника Swing по Как использовать границы для получения дополнительной информации.
Обратите внимание, что при выполнении пользовательского рисования с JComponent вы также несете ответственность за очистку фона компонента. Итак, первая картина в методе должна быть:
g2.setColor( getBackground() );
g2.fillRect(0, 0, getWidth(), getHeight());
Большинство людей используют JPanel для пользовательской живописи, тогда вы можете просто использовать:
super.paintComponent(g);
, чтобы убедиться, что фон очищен.