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

时间:2015-01-20 17:16:44

标签: java swing jframe

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

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

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

enter image description here

3 个答案:

答案 0 :(得分:2)

JPanel的Graphics对象实际上可以通过调用drawString命令在其上绘制文本。我将发布一个示例,但我认为阅读解释它的完整示例herehere最有帮助(我个人喜欢第二个,但第一个是Stack溢出问题):

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

我几乎把它标记为副本,但从技术上来说这是一个截然不同的问题。我会建议在发布前稍微搜索一下。

编辑:

要更全面地解释这可能会有所帮助,您可以拥有一个包含

的自定义JPanel元素
{Image of a d20} {Input1} d20 + {Input2} {Roll button}.

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

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

答案 1 :(得分:2)

您也可以根据需要使用JLabel并设置文本,或者将JTextField定义为像JLabel

答案 2 :(得分:0)

使用jLabel可以设置如下文本:

yourlabel.setText("your text");

或者你可以从这样的jLabel中获取文本:

String str = yourlabel.getText();

String" str"将是"你的文字"。

相关问题