Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Добавить иконку в TabPane / 25 сообщений из 44, страница 1 из 2
01.07.2016, 15:26
    #39266506
DNShark
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить иконку в TabPane
В общем хотят добавить иконку как на картинке. Есть идеи?
...
Рейтинг: 0 / 0
04.07.2016, 10:40
    #39267152
Atum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить иконку в TabPane
DNShark,

Это кто ? Свинг? javaFx?
...
Рейтинг: 0 / 0
04.07.2016, 10:44
    #39267153
Atum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить иконку в TabPane
Это очень серьезное бизнес требование - новое слово в GUI - видимо будет нести невероятную смысловую нагрузку - и как раньше то без этой иконки жили???

ЗЫ - нарисуй на конве поверх элемента - привяжи ее к координатам компонента - верхний правый угол - и не забудь отрефрешить ...

когда дизайнеры наиграются - удалишь .
...
Рейтинг: 0 / 0
04.07.2016, 12:01
    #39267216
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить иконку в TabPane
DNSharkЕсть идеи?
увольнятся
...
Рейтинг: 0 / 0
04.07.2016, 12:28
    #39267239
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить иконку в TabPane
Да будет вам глумиться. Чувак с дельфи мигрирует... трудности... и все такое.
...
Рейтинг: 0 / 0
04.07.2016, 12:34
    #39267244
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить иконку в TabPane
Atum1DNShark,

Это кто ? Свинг? javaFx?
Очевидно же что JavaFX
...
Рейтинг: 0 / 0
04.07.2016, 12:36
    #39267245
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить иконку в TabPane
maytonДа будет вам глумиться. Чувак с дельфи мигрирует... трудности... и все такое.
Я сходу решения не нашел. Если Swing достаточно просто хачится в любых подобных ситуациях, то для JavaFX нужен какой-то другой подход чтобы с уровня UI на уровень 2D интегироваться и потом обратно.
...
Рейтинг: 0 / 0
04.07.2016, 12:40
    #39267249
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить иконку в TabPane
А как в JavaFX называется Client Area?
...
Рейтинг: 0 / 0
04.07.2016, 13:02
    #39267272
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить иконку в TabPane
BlazkowiczJavaFX нужен какой-то другой подход
там вроде CSS?
Тогда именно им.
...
Рейтинг: 0 / 0
04.07.2016, 13:04
    #39267274
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить иконку в TabPane
Petro123там вроде CSS?
Тогда именно им.
???
...
Рейтинг: 0 / 0
04.07.2016, 13:11
    #39267280
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить иконку в TabPane
Blazkowicz,
в вебе часто делают так:
- в том регионе\квадрате\форме\окне делают в коде статическую константу чтобы найти в CSS по селектору
Код: html
1.
<div class="borderless-region" id="КОНСТАНТА"



потом в CSS например рисуют квадратик и т.д.
Код: css
1.
2.
3.
4.
5.
6.
7.
8.
.КОНСТАНТА {
    -fx-fill: yellow;
    -fx-stroke: green;
    -fx-stroke-width: 5;
    -fx-stroke-dash-array: 12 2 4 2;
    -fx-stroke-dash-offset: 6;
    -fx-stroke-line-cap: butt;
}


вроде написано что сабж CSS поддерживает
...
Рейтинг: 0 / 0
04.07.2016, 13:13
    #39267283
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить иконку в TabPane
Petro123,

А и правда мысль интересная
http://stackoverflow.com/questions/10518458/javafx-create-custom-button-with-image

Спасибо!
...
Рейтинг: 0 / 0
04.07.2016, 13:18
    #39267286
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить иконку в TabPane
Blazkowicz,
но это как бы хак вёрстки.
По хорошему само окно не имеет такой кнопки и его надо "хакнуть снаружу".
Тоже самое что нариcовать (Atum1), но при css автоматом будут привязаны коорднаты.
Сама задача некрасивая от постановщика.
IMHO
...
Рейтинг: 0 / 0
04.07.2016, 13:58
    #39267324
Atum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить иконку в TabPane
1) ну можно еще фон панельки придумать такой чтобы там иконка была ;

2) css стили свои (уже сказали)

3) Это же java ! нужно просто отнаследоваться и и написать свой компонент с иконкой :) (делали так но на свинг когда клиент хотел в компоненте дерево иметь в одной ноде 5!! иконок под разные состояния конкретной ноды, правда там создавали сво1 компонент иконка с 5 иконками внутри и вставляли в дерево:))
...
Рейтинг: 0 / 0
04.07.2016, 13:59
    #39267326
Atum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить иконку в TabPane
maytonДа будет вам глумиться. Чувак с дельфи мигрирует... трудности... и все такое.

Зря - думаю наделфи он бы потратил 5 минут на поиски готового компонента ... чем делфит о плох?

Делфи это то будущее к которому никто еще не пришел ...
...
Рейтинг: 0 / 0
04.07.2016, 14:11
    #39267332
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить иконку в TabPane
Atum11) ну можно еще фон панельки придумать такой чтобы там иконка была ;

2) css стили свои (уже сказали)

3) Это же java ! нужно просто отнаследоваться и и написать свой компонент с иконкой :) (делали так но на свинг когда клиент хотел в компоненте дерево иметь в одной ноде 5!! иконок под разные состояния конкретной ноды, правда там создавали сво1 компонент иконка с 5 иконками внутри и вставляли в дерево:))
1) событий не будет. Но задача будет выполнена))
3) возможно.
Это десктоп подход. Но нафига там тогда CSS?
Если это JavaFX то и делать надо в его парадигме.
Парадигме delphi или веб))).
...
Рейтинг: 0 / 0
04.07.2016, 14:13
    #39267334
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить иконку в TabPane
Atum1Делфи это то будущее к которому никто еще не пришел ...
Ты же серверный программист.
А вот, на клиенте очень широко используются селекторы .
Офигенная фича, которая в десктопе с отрисовкой ГУИ не возможна.
...
Рейтинг: 0 / 0
04.07.2016, 15:39
    #39267447
DNShark
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить иконку в TabPane
Я вот нашел
https://gist.github.com/twasyl/7fc08b5843964823e36b

думал выловить Head Area а потом добавить туда ImageView. Но пока ничего не получается. Добавить иконку это полбеды, она должна быть еще кликабельна. Т.е. как help иконка. Через toolbar нехотят.

Есть вариант обернуть в TabPane в titledPane и в titledPane добавить иконку справа. Нашел такую вот ссылку.

http://stackoverflow.com/questions/27100556/javafx-8-add-a-graphic-to-a-titledpane-on-the-right-side/27105817#27105817

но там у меня проблема, когда нажимаешь на иконку. Событие отрабатывает, но titledPane то сворачивается, то открывается).

Как-то так. Покопаюсь с css. Спасибо).
...
Рейтинг: 0 / 0
04.07.2016, 16:01
    #39267470
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить иконку в TabPane
DNSharkДобавить иконку это полбеды, она должна быть еще кликабельна.
Что же вы за люди такие. "Дайте мне колесо, дайте мне колесо, но мне на самом деле нужен автомобиль."
Чего было сразу про кнопку не написать?

Мне тут еще один способ придумался. Можно на весь контейнер, внутри которого TabPane натянуть прозрачную панель с кнопкой (через StackPane?). А на этой прозрачной панели уже кнопку добавить. Единственное что надо еще мышь разрулить, чтобы клики проходили на нижнюю панель.
http://stackoverflow.com/questions/16876083/javafx-pass-mouseevents-through-transparent-node-to-children

Правда, остается вопрос как будет табуляция работать.
...
Рейтинг: 0 / 0
04.07.2016, 16:27
    #39267497
DNShark
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить иконку в TabPane
Код: sql
1.
2.
3.
4.
5.
6.
7.
public void go() {
        final StackPane region = (StackPane) tabPane.lookup(".headers-region");
        ImageView imageView = new ImageView();
        Image image = new Image("test.png");
        imageView.setImage(image);
        region.getChildren().add(imageView);
    }



вот так у меня нарисовалась картинка на TabPane.
...
Рейтинг: 0 / 0
04.07.2016, 18:13
    #39267602
DNShark
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить иконку в TabPane
В общем в итоге получилось вот так. вызывается вначале метод в который заганяется TabPane

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
    
    public static void addHelpImageToTabPane(TabPane tabPane, String url, IconSize iconSize){
        Platform.runLater(() -> {
            StackPane region = (StackPane) tabPane.lookup(".tab-pane:top *.tab-header-area");
            if (region!=null) {
                for (Node node : region.getChildren()) {
                    if (node instanceof StackPane) {
                        HelpImage helpImage = new HelpImage();
                        helpImage.setIconSize(iconSize);
                        helpImage.setLinkUrl(url);
                        HBox hbox = new HBox();
                        hbox.setPadding(new Insets(0,5,0,0));
                        hbox.setAlignment(Pos.CENTER_RIGHT);
                        hbox.getChildren().add(helpImage);
                        ((StackPane) node).getChildren().add(hbox);
                        break;
                    }
                }
            }
        });
    }



где HelpImage extends ImageView

Код: java
1.
2.
3.
4.
5.
6.
7.
    public HelpImage() {
        refresh();
        this.setPickOnBounds(true);
        this.addEventHandler(MouseEvent.MOUSE_CLICKED, event -> openUrl(this.getLinkUrl()));
        this.addEventHandler(MouseEvent.MOUSE_EXITED_TARGET, event -> this.setImage(getNormalIcon(getIconSize())));
        this.addEventHandler(MouseEvent.MOUSE_ENTERED_TARGET, event -> this.setImage(getEnteredIcon(getIconSize())));
    }



Всем большое спасибо за помощь. Хотя я в конце понял, что можно было просто создать StackPane и на втором слое добавить иконку). В моем проекте из-за гавнокодистости, такое не проходит, а вообще вполне прошло б.
...
Рейтинг: 0 / 0
04.07.2016, 18:47
    #39267622
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить иконку в TabPane
Подскажите, пожалуйста, вот про это где почитать?
DNShark
Код: java
1.
tabPane.lookup(".tab-pane:top *.tab-header-area");
...
Рейтинг: 0 / 0
05.07.2016, 09:35
    #39267769
DNShark
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить иконку в TabPane
Там суть где-то такая. lookup ищет css селекторы. Css селекторы можно поискать или в официальном хелпе.
https://docs.oracle.com/cd/E17802_01/javafx/javafx/1.3/docs/api/javafx.scene/doc-files/cssref.html

Или есть неплохая книжка "JavaFX 2.0: разработка RIA-приложений". Тимур Машнин. Там они более удобно лежат.

Я же нашел это вот тут. http://stackoverflow.com/questions/26453484/center-tabs-in-tabpane-using-css
...
Рейтинг: 0 / 0
05.07.2016, 15:06
    #39268028
Atum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить иконку в TabPane
Petro123Atum1Делфи это то будущее к которому никто еще не пришел ...
Ты же серверный программист.
А вот, на клиенте очень широко используются селекторы .
Офигенная фича, которая в десктопе с отрисовкой ГУИ не возможна.

я счас кнопочки рисую на jsp + бутстрап . ( есть и такие задачи - требуется арм по управлению или вводу инфы в БД итд)

А что за Селекторы? есть ссылки и примеры?
...
Рейтинг: 0 / 0
05.07.2016, 15:12
    #39268037
Atum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить иконку в TabPane
BlazkowiczПодскажите, пожалуйста, вот про это где почитать?
DNShark
Код: java
1.
tabPane.lookup(".tab-pane:top *.tab-header-area");




Это уже совсем не свинг ... а какой-то хакерский способ рисовать css на канве ...

типа в javafx2 - мы признали что начали не с того места и сдается - вот вам css - рисуйте gui как хотите
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Добавить иконку в TabPane / 25 сообщений из 44, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]