Строка, вызывающая jlabel, выдает ошибку, метод setBackground(Color) не определен для типа String

#java

#java

Вопрос:

Я работаю над этой игрой в бинго, и я установил jlabel для таблицы balls, я произвольно выбираю число и добавляю буквы в соответствии с его диапазоном, в операторе if я объединяю букву и число, чтобы вызвать jlabel для изменения фона сортировки шаров и представления числа на экране. но когда я устанавливаю фон, он выдает ошибку.

Я думаю, проблема в том, что буква число должна быть преобразована во что-то другое, отличное от string , но я не знаю, как это сделать.попробуйте parseChar parseString и ничего.

 JLabel b5 = new JLabel("B5"); // example

play(){
Random rnd = new Random(); 
        int bolas = rnd.nextInt(75) 1; 
if (board[bolas] == 0){  
                   if(bolas == 0) { 
                       play(); 
                   }else if(bolas == 1 amp;amp; bolas <= 15) {
                       letra = "b";
                       numero = bolas;
                   }else if(bolas >= 16 amp;amp; bolas <= 30) {
                       letra = "i";
                       numero = bolas;
                   }else if(bolas >= 31 amp;amp; bolas <= 45) {
                       letra = "n";
                       numero = bolas;
                   }else if(bolas >= 46 amp;amp; bolas <= 60) {
                       letra = "g";
                       numero = bolas;
                   }else if(bolas >= 61 amp;amp; bolas <= 75) {
                       letra = "o";
                       numero = bolas;
                   }  
                   board[bolas] = bolas; 
                   if(gameRunning == true) {
                       bolaSorteadaText.setText(letra numero);
                       (letra numero).setBackground(new Color(0x00aa00));// error:The method setBackground(Color) is undefined for the type String
                       System.out.println("Bola sorteada: " board[bolas] );
                       }else {
                           bolaSorteadaText.setText("A0"); 
                       }
 

Комментарии:

1. Вместо того чтобы создавать случайное число, создайте массив int из 75 чисел от 1 до 75 и перетасуйте массив. Номер шарика должен быть достаточным для вашей внутренней модели, в то время как буква нужна вам для отображения.

2. Попробуй bolaSorteadaText.setBackground .

3. все работает, за исключением части, в которой я хочу раскрасить последний вызванный шар, если я вызываю jlabel b5.setbackground(новый цвет(0x00aa00); это работает, но я хочу, чтобы имя метки генерировалось при вызове шара. есть ли способ заставить его работать?

4. k314159 я получил jlabels, представляющие шары от 1 до 75, те, которые jlabel похожи, от b1 до b15, и мне нужно, чтобы этот фон менялся при вызове их соответствующих номеров. случайный дает мне имя jlabel, которое мне нужно изменить, но это строка, и вместо этого ее нужно называть именем jlabel. Это похоже на то, что после случайной генерации и процесса оператора if я предполагаю, что получаю имя, подобное этому «b5».setBackground() вместо b5.setBackground()