JavaFX - Как да премахнете лентите на ListView и TableView?

Добавям JavaFX ListViews & TableViews към моето приложение в стила им по подразбиране.

Нечетните редове получиха бял фон, а четните получиха сив фон. Не харесвам тези ленти, особено на безлюдни редове.

Опитах следните CSS настройки на моя ListView с fxid:list_PayMethod, но не помага.

(тази страница не разпознава fxid като част от кода, така че не е в сивото поле, имайте предвид.)

#list_PayMethod {

    .list-cell:odd {
        -fx-padding: 0px;
        -fx-control-background: #F4F4F4;
        -fx-control-inner-background: #F4F4F4;
    }

    .list-cell:even {
        -fx-padding: 0px;
        -fx-control-background: #F4F4F4;
        -fx-control-inner-background: #F4F4F4;
    }

    .list-view:focused .list-cell:focused:odd {
        -fx-padding: 0px;
        -fx-control-background: #F4F4F4;
        -fx-control-inner-background: #F4F4F4;
    }

    .list-view:focused .list-cell:focused:even {
        -fx-padding: 0px;
        -fx-control-background: #F4F4F4;
        -fx-control-inner-background: #F4F4F4;
    }
}

Има ли някакъв начин да настроите всичко да пише или всичко да е сиво?

Благодаря!


person katana    schedule 15.01.2020    source източник


Отговори (1)


Заменете -fx-control-background с -fx-background-color и това трябва да е достатъчно.

.list-cell {
    -fx-background-color: #F4F4F4;
}
person M. S.    schedule 15.01.2020
comment
Уверете се, че използвате правилния идентификатор. Какво е list_PayMethod? контролерът ти ли е или само ListView? - person M. S.; 15.01.2020
comment
Променихте ли нещо друго? - person M. S.; 15.01.2020
comment
Премахнах #list_PayMethod {} и след това работи, но това създаде друг проблем, защото не искам комбинираните полета да бъдат засегнати. ако fxid на ListView, който искам да конфигурирам, е list_PayMethod, какъв трябва да бъде кодът? - person katana; 15.01.2020
comment
Трябва да използвате стил клас. list.getStyleClass().add("one-color-list"); и след това във вашия css файл: .one-color-list .list-cell { -fx-background-color: #F4F4F4; } - person M. S.; 15.01.2020
comment
Още един въпрос, който да задам... Преди това, когато редът е избран, фонът ще стане син, а текстът ще стане бял. Но сега, защото фонът винаги е сив. Белият текст става труден за четене. Опитвам се да добавя -fx-text-fill: black; но цветът на шрифта остава бял, когато е избран - person katana; 15.01.2020
comment
Трябва да зададете това: .list-cell:filled:selected - person M. S.; 15.01.2020
comment
Всъщност моят listView е за съдържане на обекти listCell. Опитах вашето предложение, но се провали... Мисля, че трябва да отделя известно време на css. Е, намерих начин за заобиколно решение и промених всички контроли за етикети на контроли за текст. Тъй като цветът на текста на етикета ще се промени, когато състоянието на избор се промени, но текстът няма. Моето приложение вече работи перфектно. Благодаря ви много за страхотната помощ. - person katana; 15.01.2020
comment
Добавих комбобокс в listCell днес по някаква причина и открих, че редактирането на свойствата на изгледа на списък има дълбок ефект върху съдържанието му....Стилът на комбобокса е силно засегнат и изглежда ужасно.... Има ли някакъв начин просто задайте фона на изгледа на списъка, но оставете полето с падащ списък само в listCell? - person katana; 17.01.2020
comment
Както споменах в предишен коментар, трябва да дадете клас стил на списъка, който искате да стилизирате, и да използвате този стил в css: .one-color-list .list-cell { -fx-background-color: #F4F4F4; }. По този начин вашият ComboBox няма да бъде засегнат. - person M. S.; 17.01.2020
comment
Вече го направих.....Списъчните полета извън listView не са засегнати. Но комбинираните полета в listCells са засегнати. Тъй като listCells са вътре в listView - person katana; 17.01.2020
comment
Заснех няколко изображения, за да илюстрирам ситуацията връзка връзка връзка - person katana; 17.01.2020
comment
Разбирам.. ако това е вашият случай, използвайте id вместо class style: #someList { -fx-background-color: #F4F4F4; }. - person M. S.; 18.01.2020
comment
ComboBoxes вътре в ListCells все още ще бъдат засегнати, защото ListCells са вътре в ListView. Мисля да добавя друг стил към Combobox, за да отменя настройката, която направих в ListView. Но не мога да намеря настройките по подразбиране на нормален ComboBox - person katana; 18.01.2020
comment
Да, всъщност можете да зададете клас за тези ComboBox и не забравяйте да използвате ключовата дума !important, за да накарате цвета на ComboBox да замени цвета, идващ от ListView - person M. S.; 18.01.2020
comment
Стандартното за моден стил е -fx-background-color: transparent; - person M. S.; 18.01.2020
comment
Знаете ли настройките по подразбиране за комбинирано поле? Опитах някои различни настройки, но това само го направи по-странно и засегна и инструмента за избор на дата - person katana; 18.01.2020
comment
Проверете modena.css и се опитайте да разберете какво липсва във вашия class файл. - person M. S.; 18.01.2020
comment
Благодаря за съвета. Търся modena.css и търся всичко, което се отнася за комбинирани и списъчни клетки, отменям ги една по една и идентифицирам причината. Вече е напълно оправено. - person katana; 18.01.2020
comment
@katana се радвам да чуя това - person M. S.; 20.01.2020