6

次のように、数行のテキストと画像を持つ JLabel を表示しようとしています。

String html = "<html> hello </br> <img src = \"/absolute/path/here\" height = \"30\"  width =\"40\"/> </html>";
JLabel l = new JLabel(html);

私が得た画像は壊れた画像だけですが、JLabel内にimgタグをネストすることは可能ですか?

編集: JLabel に複数の画像を追加したいので、ImageIcon を使用してもここではうまくいかないと思います。

ありがとう

4

7 に答える 7

5

For the image all I get is a broken image, is it possible to nest img tags inside a JLabel

JLabelのテキストで画像を表示することができます。パスが正しくないため、画像が壊れています。パスの前にプレフィックスを付けるかfile:、できればjavaに。を付けてもらう必要がありますclass.getResource("/your/path")。これが実際の例です。有効なリソースパスを挿入するだけです。

import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JLabel; 

public class MultipleImagesExample
{

  public static void main(String[] args)
  {

      JFrame frame = new JFrame();
      frame.setLayout(new BorderLayout());
      JLabel label = new JLabel(
          "<html>"
          + "<img src=\""
          + MultipleImagesExample.class.getResource("/resource/path/to/image1")
          + "\">"
          + "<img src=\""
          + MultipleImagesExample.class.getResource("/resource/path/to/image2")
          + "\">"
          + "The text</html>");
      frame.add(label, BorderLayout.CENTER);
      frame.setBounds(100, 100, 200, 100);
      frame.setVisible(true);
   }

 }

Javaでのより複雑なHTMLについては、xhtmlrendererをお勧めします。

于 2011-01-04T18:29:14.623 に答える
5
File f = new File("C:\image.jpg"); 
jLabel1.setText("<html><img src=\"file:"+f.toString()+"\">");

これは私にとってはうまくいきます。シンプルで、1 つの画像アイコンだけでなく、必要な数の画像を配置する可能性があります。引用符なしでは機能しません。

于 2012-08-22T16:31:46.583 に答える
2

JEdi​​torPane に満足していない限り、基本的には Swing 内の完全な Web ブラウザーを見ていることになります。

理想的には、WebKit ビューである JWebPane を Swing コンポーネントとして使用することになりますが、まだリリースされていません。私が見つけた最新の情報は、このブログ投稿です。

DJ プロジェクトでは、プラットフォームのネイティブ ブラウザを Swing に埋め込むことができます。Windows では Internet Explorer を使用し、Linux では XULRunner を使用します。Mac のサポートはありません。

于 2010-03-20T23:53:53.230 に答える
1

むしろ、単一の JLabel に複数の画像を配置しようとするのではなく、(uthark で説明されているように) それぞれに 1 つの画像を含む多数の JLabels を単純に配置してから、すべてのラベルを単一の JPanel にグループ化します。これにより、追加の複雑さを最小限に抑えて、探している効果が得られるはずです。

于 2010-03-20T23:59:40.500 に答える
1

JEdi​​torPane を使用して HTML を表示します。ラベルのように見えるように、背景、前景、フォントなどを変更できます。

于 2010-03-20T20:08:29.170 に答える
0

埋め込み画像は HTML ではサポートされていません。したがって、setIcon を使用するか、JLabel コンストラクターに ImageIcon を指定する必要があります。HTML に IMG タグを含めることはできません。

  JLabel imageLabel =
  new JLabel(labelText,
             new ImageIcon("path/to/image.gif"),
             JLabel.CENTER);

あなたの場合、JTextPaneを使用して HTML を表示する必要があります。チュートリアルはこちら

于 2010-03-20T19:54:10.510 に答える