如何在 Swing 中使用 HTML
How to use HTML in Swing
我有一个不寻常的问题:
我有一个秋千标签,在 Hangman 游戏中更新 "Used letters"。我这样声明:
used = new JLabel(" Used: ");
但是我在代码中的另一个区域添加了它。这里:
used.setText(used.getText() + lUsed + " , ");
现在,当用户输入字母时,它会更新标签并添加字母,但如果输入足够多,它们会将框架的其余内容推到视图之外。该标签将我的边界布局的西侧扩展得如此之多,以至于其他所有内容都被推送,然后有时会切断应用程序 window.
有什么好的方法可以使用 HTML 来使文本自动换行并且不改变面板(它包含的内容)的大小?
GridLayout c = new GridLayout(rows,0);
westPanel = new JPanel(c);
westPanel.add(guessedPanel);
westPanel.add(usedPanel);
frame.getContentPane().add(westPanel, BorderLayout.WEST);
布局如何^^
对于那些来自 Google、 的人来说更通用的解决方案,您可以很容易地将 HTML 添加到 Swing 组件,只要内容是添加开始和
以正确的 HTML 标签结尾。
例如,您可以将 HTML 文本插入 JLabel,这样:
label.setText("<html> Text </html>");
您可以将其颜色居中并在第一个字母下划线,如下所示:
label.setText("<html><center><u>T</u>ext</center></html>");
这里 good tutorial 介绍了如何在 Swing 组件中使用 HTML。
--
对于您的特定解决方案,您可以在向标签添加文本时简单地使用HTML。而不是使用 used.getText()
您应该将文本存储在某处的字符串中(不包含开始和结束 HTML 标记),并更新该字符串,以便能够有效地管理开始和结束关闭 HTML 个标签。所以它可以像这样
String text; // Earlier in the code
...
text += ("<br> " + lUsed);
used.setText("<html>" + text + "</html>")
除其他事项外,您可以尝试设置标签的首选大小或最大大小,以防止标签变大。此外,您可以将标签改为某种文本面板或文本区域,这将自动支持自动换行、滚动和您可能需要的其他功能。
这是 how to use JTextAreas 上的指南。
为 HTML 的 body
标签指定样式宽度。有关示例,请参阅 Text Wrap in JOptionPane。
我有一个不寻常的问题: 我有一个秋千标签,在 Hangman 游戏中更新 "Used letters"。我这样声明:
used = new JLabel(" Used: ");
但是我在代码中的另一个区域添加了它。这里:
used.setText(used.getText() + lUsed + " , ");
现在,当用户输入字母时,它会更新标签并添加字母,但如果输入足够多,它们会将框架的其余内容推到视图之外。该标签将我的边界布局的西侧扩展得如此之多,以至于其他所有内容都被推送,然后有时会切断应用程序 window.
有什么好的方法可以使用 HTML 来使文本自动换行并且不改变面板(它包含的内容)的大小?
GridLayout c = new GridLayout(rows,0);
westPanel = new JPanel(c);
westPanel.add(guessedPanel);
westPanel.add(usedPanel);
frame.getContentPane().add(westPanel, BorderLayout.WEST);
布局如何^^
对于那些来自 Google、 的人来说更通用的解决方案,您可以很容易地将 HTML 添加到 Swing 组件,只要内容是添加开始和 以正确的 HTML 标签结尾。
例如,您可以将 HTML 文本插入 JLabel,这样:
label.setText("<html> Text </html>");
您可以将其颜色居中并在第一个字母下划线,如下所示:
label.setText("<html><center><u>T</u>ext</center></html>");
这里 good tutorial 介绍了如何在 Swing 组件中使用 HTML。
--
对于您的特定解决方案,您可以在向标签添加文本时简单地使用HTML。而不是使用 used.getText()
您应该将文本存储在某处的字符串中(不包含开始和结束 HTML 标记),并更新该字符串,以便能够有效地管理开始和结束关闭 HTML 个标签。所以它可以像这样
String text; // Earlier in the code
...
text += ("<br> " + lUsed);
used.setText("<html>" + text + "</html>")
除其他事项外,您可以尝试设置标签的首选大小或最大大小,以防止标签变大。此外,您可以将标签改为某种文本面板或文本区域,这将自动支持自动换行、滚动和您可能需要的其他功能。
这是 how to use JTextAreas 上的指南。
为 HTML 的 body
标签指定样式宽度。有关示例,请参阅 Text Wrap in JOptionPane。