多色のJLabelを作成するには別の方法が必要です。 (多色=異なる前景色のテキストの部分)多色のJLabel
これまでに私が見つけた唯一の解決策は、テキストをhtmlに設定することです。しかし、私はそれに問題があります...
JLabelで平滑なテキストを使ってJLabelを絞り込む必要があるとLayoutManagerが判断した場合、そのテキストは切り取られ、「...」が追加されます。 (例: "My Long Text" - > "My Long T ..."になります)
HTMLはJLabelの中で、スペース文字のどこかにラップされ、残りの部分は描画可能ですJLabelの高さは変更されていないため、表示されません。 (例:「My Long Text」 - >「My Long」になります)
私の場合、JLabelはJTableにレンダリングされます。JTableは、異なるスクリーン解像度で言えば、ユーザーによってサイズが変更されます。
htmlに「nowrap」属性またはタグを追加しようとしましたが、これは無視されます。
私を残して - 私は考えて - 一つの解決策:ラベル自分自身を描く。 そうでしょうか? 提案がありますか? 例?
ありがとうございます。第二のJLabelのテキストこと
...水平にこのパネルのサイズを変更してみてください、との両方のJLabelのの内のテキストで何が起こるか見て(ユーザーのための兆候はありません、:
はここで非常に簡単な例ですこの例では、JLabelの高さは変更されていますが、フレームワークのJTable内でレンダリングすると、行の高さは変更されず、変更したくありません。 JLabelでHTMLテキストを使用している場合、HTMLを使用せずに、それは、行の折り返しを防止するためには...どちらか
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class MultiJLabel
extends JFrame
{
public MultiJLabel()
{
super("Multi-colored JLabel test");
JPanel pnl = new JPanel();
pnl.setLayout(new BorderLayout());
pnl.add(new JLabel("This is a test of My Long Text"), BorderLayout.NORTH);
pnl.add(new JLabel("<html>This is a test of <font color='#ffbebe'>My Long Text</font></html>"), BorderLayout.SOUTH);
this.getContentPane().add(pnl);
this.pack();
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args)
{
new MultiJLabel();
}
}
あなたは[MCVE]を示すことができました。 HTMLは間違いなく最も簡単です。ここでは、問題はマルチカラーではなくラップされたテキストについてです。まず、あなたのテキストが長すぎる場合、あなたは何を期待していますか? – AxelH
@all私は再オープンを票決しました。複製はJList内の 'JLabel'に関するものです。これはSAME'JLabel'内部で色が違うという点で異なります。ここで隠された質問があることに注意してください。「HTMLが解決策なら、ラップを適切に動作させる方法は?」 – AxelH
@AxelHお返事ありがとうございます。最初の質問を最小限の例で編集しました(元の問題が大きなフレームワーク内で発生したため)。私が期待しているのは、表示されたテキストが完全ではないことをユーザーに伝える何らかの表示です。 – c00lstef