Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JFrame:如何在没有JTextArea/JTextField的情况下显示文本_Java_Swing_Jframe - Fatal编程技术网

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

Java JFrame:如何在没有JTextArea/JTextField的情况下显示文本,java,swing,jframe,Java,Swing,Jframe,我想在这些框之间显示文本,使每一行看起来像: {Image of a d20} {Input1} d20 + {Input2} {Roll button}. 这是一个奇怪的问题,但应该让事情更清楚 JPanel的图形对象实际上可以通过调用drawString命令自己绘制文本。我将发布一个示例,但我认为阅读完整的示例将非常有帮助,或者(我个人喜欢第二个示例,但第一个是堆栈溢出问题): 我几乎把它标记为重复,但从技术上讲,这是一个截然不同的问题。我建议在发布之前多搜索一下 编辑: 为了更全面地解释

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

{Image of a d20} {Input1} d20 + {Input2} {Roll button}.
这是一个奇怪的问题,但应该让事情更清楚


JPanel的图形对象实际上可以通过调用drawString命令自己绘制文本。我将发布一个示例,但我认为阅读完整的示例将非常有帮助,或者(我个人喜欢第二个示例,但第一个是堆栈溢出问题):

我几乎把它标记为重复,但从技术上讲,这是一个截然不同的问题。我建议在发布之前多搜索一下

编辑:

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

{Image of a d20} {Input1} d20 + {Input2} {Roll button}.
它将文本、图像、输入和按钮绘制到包含所有这些内容的JPanel的本地。这个JPanel将有一个paintComponent()方法,您可以在其中使用上述代码。然后把它包括在你的JFrame中。在对相关组件进行分组时,它使代码更加模块化,易于组织。我希望这对你有帮助


快乐编码!如果您有任何问题,请留下评论。

您也可以使用JLabel并根据需要设置其文本,或者定义JTextField使其与JLabel类似使用JLabel您可以这样设置文本:

yourlabel.setText("your text");
String str = yourlabel.getText();
或者,您也可以通过如下方式从jLabel获取文本:

yourlabel.setText("your text");
String str = yourlabel.getText();

字符串“str”应该是“您的文本”。

我想您应该使用JLabel,但是什么是“d20”,它的图像是什么样子的?Swing中有一个名为JLabel的方法,它接受HTML格式。这可能会被使用。是的,我同意,如果您只想显示图像,JLabel是使用其
setIcon
方法来实现这一点的最简单方法。我想知道您是否真的想显示JTable,但在我更好地了解它是什么之前,您确实在尝试这样做,我必须把这个想法搁置起来。我编辑了这篇文章以展示更好的实践。这将与某些参考链接稍有冲突,但在一个重要方面。@HovercraftFullOfEels感谢您的编辑。今天是一个打字错误百出的日子。您是否同意制作一个自定义组件来容纳其相关位的想法?也许最好使用GridBagLayout在适当的网格中格式化字段/标签。