TableCellRenderer продолжает рисовать в JTable || Java Swing

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

    String[] columnNames = { "Spieler", "Verfügbare Truppen", "besetzte Länder" };

    Object[][] data = { { Player1.getName(), Player1.troopscore, Player1.countryscore },
            { Player2.getName(), Player2.troopscore, Player2.countryscore },
            { Player3.getName(), Player3.troopscore, Player3.countryscore },
            { Player4.getName(), Player4.troopscore, Player4.countryscore },
            { Player5.getName(), Player5.troopscore, Player5.countryscore },
            { Player6.getName(), Player6.troopscore, Player6.countryscore },

    };

    table = new JTable(data, columnNames) {

        @Override
        public Component prepareRenderer(TableCellRenderer renderer, int row, int col) {
            Component comp = super.prepareRenderer(renderer, row, col);

            for (int i = 0; i < playerlist.size(); i++) {
                Object value = getModel().getValueAt(i, 0);

                {

                    if (row == i && col == 0 && value == playerlist.get(i).getName()) {

                        {
                            System.out.println(value);
                            comp.setBackground(playerlist.get(i).player_color);
                        }

                    }

                }
            }

            return comp;

        }
    };

Буду признателен за вашу помощь :)

Вы должны звонить comp.setBackground каждый раз. Циклы должны определять, какой цвет использовать, а не вызывать ли comp.setBackground. Осторожность: Вам необходимо сравнить значения с методом equals объекта. В большинстве случаев сравнить их с == не удастся.

VGR 09.08.2018 18:33

У вас НЕ должно быть кода цикла в методе prepareRenderer (...). Таблица автоматически вызовет средство визуализации для каждой ячейки.

camickr 11.08.2018 03:24
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
23
0

Другие вопросы по теме