簡體   English   中英

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數組。您不能將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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM