java - 如何在 JTextField 中显示字符数组
java - How do I display a character array in a JTextField
我正在尝试创建一个刽子手游戏,其中会为用户显示破折号,如果他们单击正确的按钮,一个字母将替换破折号。这在我使用控制台输出所有数据时有效,但在我切换到 GUI 后,无论我尝试什么都不起作用。 JTextField 似乎不接受字符数组。
private static JTextField txtDashes;
static char [] dashes = {'-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-'};
txtDashes = new JTextField();
txtDashes.setBackground(Color.GRAY);
txtDashes.setHorizontalAlignment(SwingConstants.CENTER);
txtDashes.setBorder(javax.swing.BorderFactory.createEmptyBorder());
txtDashes.setBounds(39, 207, 218, 46);
gameScreen.add(txtDashes);
txtDashes.setColumns(10);
for (int i = 0; i < dashes.length; i++){
txtDashes.setText(dashes[i]); //Error occurs here
} //End of for loop
我只有大约 5 个月的 java 编码经验,似乎无法找到解决此问题的方法。
你应该传递一个 String
到 setText()
方法
破折号是 char
array.you 无法将字符设置为文本字段。您必须先将字符转换为字符串
使用
txtDashes.setText(String.valueOf(dashes[i]));
或
txtDashes.setText(dashes[i] + "");
编辑
setText()
替换现有文本并设置新的 text.if 你想显示所有数组字符,首先将它附加到一个字符串抛出一个循环并从循环外部 setText()
像这样
String s="";
for (int i = 0; i < dashes.length; i++){
s+=dashes[i];
}
txtDashes.setText(s);
注意在循环内附加 .string 不好,您可以使用 StringBuilder
您可以使用 Fast Snail 方法,也可以使用 String 而不是 char。
static String [] dashes = {"-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-"};
删除代码中的 for 循环。而是使用 Arrays.toString 将数组转换为字符串:
txtDashes.setText(Arrays.toString(dashes));
我正在尝试创建一个刽子手游戏,其中会为用户显示破折号,如果他们单击正确的按钮,一个字母将替换破折号。这在我使用控制台输出所有数据时有效,但在我切换到 GUI 后,无论我尝试什么都不起作用。 JTextField 似乎不接受字符数组。
private static JTextField txtDashes;
static char [] dashes = {'-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-'};
txtDashes = new JTextField();
txtDashes.setBackground(Color.GRAY);
txtDashes.setHorizontalAlignment(SwingConstants.CENTER);
txtDashes.setBorder(javax.swing.BorderFactory.createEmptyBorder());
txtDashes.setBounds(39, 207, 218, 46);
gameScreen.add(txtDashes);
txtDashes.setColumns(10);
for (int i = 0; i < dashes.length; i++){
txtDashes.setText(dashes[i]); //Error occurs here
} //End of for loop
我只有大约 5 个月的 java 编码经验,似乎无法找到解决此问题的方法。
你应该传递一个 String
到 setText()
方法
破折号是 char
array.you 无法将字符设置为文本字段。您必须先将字符转换为字符串
使用
txtDashes.setText(String.valueOf(dashes[i]));
或
txtDashes.setText(dashes[i] + "");
编辑
setText()
替换现有文本并设置新的 text.if 你想显示所有数组字符,首先将它附加到一个字符串抛出一个循环并从循环外部 setText()
像这样
String s="";
for (int i = 0; i < dashes.length; i++){
s+=dashes[i];
}
txtDashes.setText(s);
注意在循环内附加 .string 不好,您可以使用 StringBuilder
您可以使用 Fast Snail 方法,也可以使用 String 而不是 char。
static String [] dashes = {"-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-"};
删除代码中的 for 循环。而是使用 Arrays.toString 将数组转换为字符串:
txtDashes.setText(Arrays.toString(dashes));