2

私は、単語の代わりにブロック (JPanel) を持つ一種のエディターを作成しています (テキストのようなフローとカーソル - JPanel の点滅)。

次のような状況で、既存のコンポーネント間に Swing コンポーネント (新しいブロック) をすばやく追加する方法が必要です。

  • JPanels間でマウスクリックしてカーソルをそこに置きます
  • 既存の要素の間に新しいブロック要素を追加します。

問題は、ドキュメントの再構築 (.removeAll() および .add() すべてのブロック) が、300 ~ 400 ブロックを含むドキュメントで 3 ~ 4 秒かかることです。

各ブロックの間に空のブロックを挿入してそこにカーソルを配置することで、カーソルの配置を簡単に高速化できますが、既存のブロックの間に新しいクリーンなブロックが必要な場合はどうすればよいでしょうか?

独自の「レンダリング エンジン」を作成する方法があることは知っていますが、swing コンポーネントを使用すると、これをより簡単に実現できますか?

4

2 に答える 2

3

適切な制約を持つブロックを 1 つだけ追加する必要があると思います。次に、ブロックを別のブロックの間に正しく配置し、すべての子コンポーネントをレイアウトするのが LayoutManager のタスクです。

于 2013-01-18T12:43:22.027 に答える
-1

独自の LayoutManager を作成する必要があります。

于 2013-01-18T12:59:07.047 に答える