18910140161

java TextComponent-Stack溢出中带有框架/边框的HTML文本

顺晟科技

2022-10-19 13:53:06

75

下面标签中的html代码按预期在浏览器中呈现。 java API声明不完全支持“边框”,但是 这个例子也不起作用。 虽然我希望不大,但我想问是否有替代方案 html来绘制边框。 我发现最接近的是一个单元格表。在那里,划桨是有效的,但最薄的边界是相当丰富的。 请注意,我只希望为单个单词编写框架,而不是整行或整段。

import javax.swing.*;

public class HtmlLabel extends JFrame {

  public HtmlLabel() {
    setSize(300,200);
    setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    setLocationRelativeTo(null);
    setTitle("A JLabel with HTML text");

    JLabel lb= new JLabel("""
    <html>Please give <span style="border:1px solid; background:#D8EAFC;\
    padding:5px">me</span> a frame.</html>""");
    add(lb);
    setVisible(true);
  }

  public static void main(String args[]) {
    SwingUtilities.invokeLater(HtmlLabel::new);
  }

}

顺晟科技:

不知道从哪里获得HTML或如何构建HTML。

也许您可以使用自定义的:

import javax.swing.*;

public class HtmlLabel extends JFrame {

  public HtmlLabel() {
    setSize(300,200);
    setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    setLocationRelativeTo(null);
    setTitle("A JLabel with HTML text");

    JLabel lb= new JLabel("""
    <html>Please give <span style="border:1px solid; background:#D8EAFC;\
    padding:5px">me</span> a frame.</html>""");
    add(lb);
    setVisible(true);
  }

  public static void main(String args[]) {
    SwingUtilities.invokeLater(HtmlLabel::new);
  }

}

以上代码使用rectangle painter.

我快速更改了以绘制背景和边框:

import javax.swing.*;

public class HtmlLabel extends JFrame {

  public HtmlLabel() {
    setSize(300,200);
    setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    setLocationRelativeTo(null);
    setTitle("A JLabel with HTML text");

    JLabel lb= new JLabel("""
    <html>Please give <span style="border:1px solid; background:#D8EAFC;\
    padding:5px">me</span> a frame.</html>""");
    add(lb);
    setVisible(true);
  }

  public static void main(String args[]) {
    SwingUtilities.invokeLater(HtmlLabel::new);
  }

}

我得到:

注意:

  1. 我在要突出显示的单词前/后添加了额外的空格,以获得额外的填充。
  2. 还有,我不知道为什么要用JTextPane进行测试。您可以使用任何文本组件,因此也可以使用JTextField。
  • TAG:
相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航