Я хотел бы перечислить все цвета, которые находятся в классе Color.<color>
.
Где я могу найти все перечисленные цвета?
Я хотел бы перечислить все цвета, которые находятся в классе Color.<color>
.
Где я могу найти все перечисленные цвета?
На мой взгляд, нет собственного способа получить это. Я просто проверяю Color API и, похоже, там это не функция, которая дает вам цвета по умолчанию. Но вы можете получить их, получая все поля через отражение. Здесь я покажу вам образец:
private static List<Color> allColors() throws ClassNotFoundException, IllegalAccessException {
List<Color> colors = new ArrayList<>();
Class clazz = Class.forName("javafx.scene.paint.Color");
if (clazz != null) {
Field[] field = clazz.getFields();
for (int i = 0; i < field.length; i++) {
Field f = field[i];
Object obj = f.get(null);
if(obj instanceof Color){
colors.add((Color) obj);
}
}
}
return colors;
}
Также, если вам нужно название цвета, вы можете получить его из информации о поле в момент извлечения. И, например, вы можете вернуть карту с информацией об имени и цвете, как показано выше:
private static Map<String, Color> allColorsWithName() throws ClassNotFoundException, IllegalAccessException {
Map<String, Color> map = new HashMap<>();
Class clazz = Class.forName("javafx.scene.paint.Color");
if (clazz != null) {
Field[] field = clazz.getFields();
for (int i = 0; i < field.length; i++) {
Field f = field[i];
Object obj = f.get(null);
if(obj instanceof Color){
map.put(f.getName(), (Color) obj);
}
}
}
return map;
}
Надеюсь, поможет.