JFrame:如何在没有 JTextArea/JTextField 的情况下显示文本

JFrame: How to display text without JTextArea/JTextField

我想在这些框之间显示文本,以便每一行看起来像:

{Image of a d20} {Input1} d20 + {Input2} {Roll button}.

这是一个奇怪的问题,但 this screenshot 应该会让事情变得更清楚。

您的 JPanel 的 Graphics 对象实际上可以通过调用 drawString 命令自行绘制文本。我将 post 举一个例子,但我认为阅读解释它的完整例子 here or here 最有帮助(我个人喜欢第二个,但第一个是 Stack Overflow 问题):

@Override
protected void paintComponent(Graphics g)
{
   super.paintComponent(g);
   g.drawString("abc", 25, 25);
}

我几乎将其标记为重复,但从技术上讲这是一个不同的问题。不过,我建议在 posting 之前多搜索一下。

编辑:

为了更彻底地解释这可能有什么帮助,您可以使用一个自定义 JPanel 元素来保存您的

{Image of a d20} {Input1} d20 + {Input2} {Roll button}.

它绘制包含所有这些内容的 JPanel 的本地文本、图像、输入和按钮。这个 JPanel 将有一个 paintComponent() 方法,您可以在其中使用上面的代码。然后将其包含在您的 JFrame 中。它使您的代码更加模块化,并且在您对相关组件进行分组时更易于组织。希望对您有所帮助。

编码愉快!如果您有任何问题,请发表评论。

您还可以使用 JLabel 并根据需要设置它的文本,或者定义 JTextField 使其像 JLabel

使用 jLabel 你可以这样设置文本:

yourlabel.setText("your text");

或者您可以像这样从 jLabel 中获取文本:

String str = yourlabel.getText();

字符串 "str" 将是 "your text"。