我这里有设计问题。有两个选项听起来可以实现,但我不喜欢任何一个。
我需要在我的 JPanel 中提供两个功能。
- 画几条线
- 画几根弦
广告
- 进近延长两次
如果我只需要画线,那么我可以从以下答案中复制过去的解决方案。
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 内部有许多 JLabel 作为子项,它们代表单位和特征。
线条是单位的某些特征之间的关系,字符串是某些动作的通知。
所以我想在子 JLabels 的顶部(前面)显示字符串。
JPanel 也在 JScrollPane 内部。