0

ここに設計上の問題があります。実装できると思われるオプションが 2 つありますが、どちらも好きではありません。

JPanel で 2 つの機能を提供する必要があります。

  • 数本の線を引く
  • いくつかの文字列を描く

広告

  1. アプローチ延長2回

線を引くだけでよい場合は、次の回答からソリューションをコピーして貼り付けることができます。

JavaでボタンクリックでJPanelに線を引く

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

しかし、2番目の機能を追加する必要があるので、このようなことをする必要があります

public class LineStringPanel extends JPanel {

これにより、LinePanel は役に立たない中間クラスのままになります。

  1. LineDrawer と StringDrawer の 2 つのクラスを作成し、JPanel をパラメーターとして、描画を実行する何らかのメソッドに渡します。ここで私が呼び出す必要がある問題は、推奨されていません。

カスタムペイントの実行

Graphics g = panel.getGraphics();

あなたは何を考え、お勧めできますか?

UPD: JPanel 内には、ユニットと特性を表す多数の JLabels が子として存在します。

線はユニットのいくつかの特性間の関係であり、文字列はいくつかのアクションの一種の通知です。

そこで、子 JLabels の上部 (前面) に String を表示したいと思います。

また、JPanel は JScrollPane 内にあります。

4

1 に答える 1