как получить следующий индексный массив при нажатии кнопки - PullRequest
0 голосов
/ 26 сентября 2019
String [] num ={ "one", "two", "three", "four", "five" };

private void btn_goActionPerformed(java.awt.event.ActionEvent evt) {
    for(int i=0 ; i<=num.length ; i++){            
        label1.setText(num[i]);
    } 
}  

Это просто установка текста для последнего элемента массива: five.

Ответы [ 2 ]

1 голос
/ 26 сентября 2019

Он не принимает «пять» напрямую, но это последнее.Прежде чем значение было «один», затем «два» ... затем «пять», вы должны сделать что-то вроде этого:

String [] num ={ "one", "two", "three", "four", "five" };
static int i=0;
private void btn_goActionPerformed(java.awt.event.ActionEvent evt) {
    if(i<num.length()){
       label1.setText(num[i]);
       i=i+1;
    }
}

Здесь каждый раз, когда вы нажимаете на кнопку, метка меняется и принимаетследующее значение, если оно доступно

0 голосов
/ 26 сентября 2019

Вы выполняете итерацию в своей функции, пока она не достигнет последнего индекса вашего массива.

Вам нужно получить индекс текста вашей метки с существующими значениями в вашем массиве и сбросить индекс, если значения не найдены илиесли индекс последний.т.е.:

private static JLabel label1 = new JLabel();
private static final String[] num = { "one", "two", "three", "four", "five" };
private void btn_goActionPerformed(java.awt.event.ActionEvent evt) {
    // Fetch index of label value
    int index = Arrays.asList(num).indexOf(label1.getText());
    /*
     * If no values found, index == -1, index + 1 will reset at the first 
     * index so we don't care about this case.
     * If index + 1 exceed array length, index is set to 0.
     */
    label1.setText(index + 1 > num.length ? num[0] : num[index + 1]);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...