Дизайн: расширить JPanel в два раза или передать JPanel в качестве параметра?

У меня есть проблема дизайна здесь. Есть два варианта, которые кажутся возможными для реализации, но я нене нравится ни один.

Мне нужно предоставить две функциональные возможности в моей JPanel.

нарисовать несколько линийнарисовать несколько строк

Объявления

Подход расширяется в два раза

Если мне нужно будет только рисовать линии, я могу просто скопировать прошлое решение из следующего ответа.

Нарисуйте линию в JPanel с помощью нажатия кнопки в Java

public class LinePanel extends JPanel {
...
@Override
protected void paintComponent(Graphics g) {
    super.paintComponent(g);
    ...

Но так как мне нужно добавить второй функционал, мне нужно сделать что-то вроде этого

public class LineStringPanel extends JPanel {

который бы оставил LinePanel просто бесполезным промежуточным классом.

Создайте два класса LineDrawer и StringDrawer и передайте JPanel в качестве параметра какому-либо методу, который будет выполнять рисование. Проблема здесь, которую мне нужно будет назвать, которая не рекомендуется.

Выполнение Пользовательской Живописи

Graphics g = panel.getGraphics();

Что вы думаете и можете порекомендовать?

UPD: Внутри JPanel есть множество JLabels как дочерних, которые представляют единицы и черты.

Линии - это связь между некоторыми характеристиками юнитов, а строки - это своего рода уведомления для некоторых действий.

Поэтому я хочу показать String сверху (спереди) ребенка JLabels.

Также JPanel находится внутри JScrollPane.

Ответы на вопрос(1)

Ваш ответ на вопрос