powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Добавить иконку в TabPane
25 сообщений из 44, страница 1 из 2
Добавить иконку в TabPane
    #39266506
DNShark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В общем хотят добавить иконку как на картинке. Есть идеи?
...
Рейтинг: 0 / 0
Добавить иконку в TabPane
    #39267152
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DNShark,

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

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

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

Это кто ? Свинг? javaFx?
Очевидно же что JavaFX
...
Рейтинг: 0 / 0
Добавить иконку в TabPane
    #39267245
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonДа будет вам глумиться. Чувак с дельфи мигрирует... трудности... и все такое.
Я сходу решения не нашел. Если Swing достаточно просто хачится в любых подобных ситуациях, то для JavaFX нужен какой-то другой подход чтобы с уровня UI на уровень 2D интегироваться и потом обратно.
...
Рейтинг: 0 / 0
Добавить иконку в TabPane
    #39267249
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как в JavaFX называется Client Area?
...
Рейтинг: 0 / 0
Добавить иконку в TabPane
    #39267272
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczJavaFX нужен какой-то другой подход
там вроде CSS?
Тогда именно им.
...
Рейтинг: 0 / 0
Добавить иконку в TabPane
    #39267274
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123там вроде CSS?
Тогда именно им.
???
...
Рейтинг: 0 / 0
Добавить иконку в TabPane
    #39267280
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Добавить иконку в TabPane
    #39267283
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

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

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

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

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

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

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

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

3) Это же java ! нужно просто отнаследоваться и и написать свой компонент с иконкой :) (делали так но на свинг когда клиент хотел в компоненте дерево иметь в одной ноде 5!! иконок под разные состояния конкретной ноды, правда там создавали сво1 компонент иконка с 5 иконками внутри и вставляли в дерево:))
1) событий не будет. Но задача будет выполнена))
3) возможно.
Это десктоп подход. Но нафига там тогда CSS?
Если это JavaFX то и делать надо в его парадигме.
Парадигме delphi или веб))).
...
Рейтинг: 0 / 0
Добавить иконку в TabPane
    #39267334
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atum1Делфи это то будущее к которому никто еще не пришел ...
Ты же серверный программист.
А вот, на клиенте очень широко используются селекторы .
Офигенная фича, которая в десктопе с отрисовкой ГУИ не возможна.
...
Рейтинг: 0 / 0
Добавить иконку в TabPane
    #39267447
DNShark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я вот нашел
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
Добавить иконку в TabPane
    #39267470
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DNSharkДобавить иконку это полбеды, она должна быть еще кликабельна.
Что же вы за люди такие. "Дайте мне колесо, дайте мне колесо, но мне на самом деле нужен автомобиль."
Чего было сразу про кнопку не написать?

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

Правда, остается вопрос как будет табуляция работать.
...
Рейтинг: 0 / 0
Добавить иконку в TabPane
    #39267497
DNShark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: 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
Добавить иконку в TabPane
    #39267602
DNShark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В общем в итоге получилось вот так. вызывается вначале метод в который заганяется 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
Добавить иконку в TabPane
    #39267622
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите, пожалуйста, вот про это где почитать?
DNShark
Код: java
1.
tabPane.lookup(".tab-pane:top *.tab-header-area");
...
Рейтинг: 0 / 0
Добавить иконку в TabPane
    #39267769
DNShark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Там суть где-то такая. 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
Добавить иконку в TabPane
    #39268028
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Atum1Делфи это то будущее к которому никто еще не пришел ...
Ты же серверный программист.
А вот, на клиенте очень широко используются селекторы .
Офигенная фича, которая в десктопе с отрисовкой ГУИ не возможна.

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

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




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

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


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