Дизайн: расширить 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.