![](/img/trans.png)
[英]How do i input a value into an array using a JTextField each time in Java
[英]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
數組。您不能將char設置為文本字段。您必須先將char轉換為String
采用
txtDashes.setText(String.valueOf(dashes[i]));
要么
txtDashes.setText(dashes[i] + "");
編輯
setText()
替換現有文本並設置新文本。如果要顯示所有數組字符,請首先將其附加到字符串上並引發循環,然后從循環外部setText()
像這樣
String s="";
for (int i = 0; i < dashes.length; i++){
s+=dashes[i];
}
txtDashes.setText(s);
注意循環內的.string append不好,您可以使用StringBuilder
您可以使用Fast Snail方法,也可以使用String代替char。
static String [] dashes = {"-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-"};
在代碼中刪除for循環。 而是使用Arrays.toString將數組轉換為String:
txtDashes.setText(Arrays.toString(dashes));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.