2012-04-05 8 views
0

頂点の境界内に完全に表示された頂点ラベルが必要です。つまり、ラベルが長すぎると、その一部が頂点ボックスの外側に表示されます。自動的にラベルを複数の行に分割し、頂点の境界に合わせる方法はありますか?この改行は、頂点のサイズ変更後に再計算する必要があります。スタイルを使ってもいいですか? mxUtils.wordWrap()は方法のようですが、正しく使用する方法を理解できません。私にそれを使用する例を与えてください。あなたの答えてくれてありがとう頂点ボックス内にラベルを表示する(jgraphxライブラリ)

+0

私は、スイングを使用して同様の問題に遭遇しました...私が思いついた解決策は、文字列(ピクセル、mmなど)の物理的な表示長さを推定し、それを「頂点」境界と比較することでした。コードが「境界外」を検出した場合、境界内の最後の位置を選択して '\ n'を挿入します。これはあなたのアプリケーションではうまくいくと思いますか? – Michael

+0

yeap。それでおしまい。私はmxUtils.wordWrap()メソッドを見つけました。それは正しいことをしているようです。幅とフォントのメトリックに応じて文字列を文字列配列に分割します。しかし、私はそれを正しく使う方法を知らない。何か案は? – kant

答えて

1

別の同様の質問:Calculate the display width of a string in Java

要約: Graphics.getFontMetricsをこのことから+ FontMetrics.stringWidth

、私はあなたがList<String>を作成してあるテキスト1の単語を追加することができたとしあなたの最大長に達するまでの時間、オーバーフローのためのリストに新しいノードを追加します。最後に、Listの各ノードを改行して間に追加します。

私が行った研究から、別のこととして、jGraphXはスイングで動作するようです。 SwingはHTMLをサポートするようになりました。さらに詳しい情報へのリンクはhttp://docs.oracle.com/javase/tutorial/uiswing/components/html.htmlです。

私は簡単なテストを書くことができますが、私は家に帰るまで待たなければなりません。

+0

それは私が望んでいたものではありませんでしたが、それは解決策を見つけるのを助けました。どうもありがとう – kant

+2

あなたの問題を解決するために何をしたのですか? – Michael

関連する問題