2013-03-29 4 views
2

У меня есть Java TiltPane 2.2 с несколькими элементами (детьми). Я добавил css, чтобы при наведении курсора мыши значение элемента было равно 1.2. По умолчанию порядок детей определяет, какой узел нарисован первым и что последний. Есть ли способ сделать элемент зависания выше всех остальных, не прибегая к toFront() и делая его последним (перемещая его до конца). Этот вопрос похож на https://stackoverflow.com/questions/13893514/scaling-children-in-a-flowpane-makes-the-children-clip-eachother (все еще без ответа).JavaFX TilePane - порядок рисования детей

Скриншот вопроса находится по адресу: http://vladeck.files.wordpress.com/2013/03/javafx_tilepane.png?w=640

+0

Есть ли способ (взломать?) Для реализации моего собственного кода извлечения порядка детей для рисования, когда JavaFX перекрашивает TilePanel? – vladeck

ответ

2

Solution/Обход

  1. Используйте GridPane вместо TilePane.
  2. Когда пользователь нажимает на элемент в сетке, звоните toFront по этому товару.

Пример кода

Я добавил следующий код в calculator, который основан на макете сетки, которая выглядит аналогично черепичной макета в скриншоте образца. С измененным приложением у меня не было перекрытия кнопок калькулятора. Удивительным для меня, хотя они выглядели немного странно, масштабированные кнопки сделали калькулятор проще в использовании ...

button.setOnMouseEntered(new EventHandler<MouseEvent>() { 
    @Override public void handle(MouseEvent mouseEvent) { 
    button.toFront(); 
    button.setScaleX(1.6); button.setScaleY(1.6); 
    } 
}); 
button.setOnMouseExited(new EventHandler<MouseEvent>() { 
    @Override public void handle(MouseEvent mouseEvent) { 
    button.setScaleX(1); button.setScaleY(1); 
    } 
}); 

calculator image1 calculator image2


фона

Как вы отмечаете , проблема перекрытия неразрешима в некоторых фондах Panes вроде TilePane. Это связано с тем, что z-порядок, а также относительная позиция расположения узла определяются взаимным положением узла в дочернем списке TilePane. В таких панелях вы не можете изменить z-порядок и перенести его на передний план, не перемещая узел до последней позиции макета в TilePane.

Есть ли способ (взломать?) Для реализации моего собственного кода извлечения порядка детей для рисования, когда JavaFX перекрашивает TilePanel?

Да, вы можете взломать TilePane code, если у вас есть навыки.

+0

Это один из тех моментов - так близко, но пока :) Спасибо! – vladeck