Я пытаюсь вставить строку в сетку.
Как я могу это достичь?
Дальнейшее чтение/информация/effots:Вставка строки в Gridpane
Я был в состоянии добавить строку с этим:
add.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
Peak thisPeak = new Peak();
MenuPeak dispPeak = new MenuPeak(thisPeak);
int row = 1+thisPeak.peakCount();
//psMenu.addRow(1+row);
psMenu.add(dispPeak.name,1,row,1,1);
psMenu.add(dispPeak.retTime,2,row,1,1);
psMenu.add(dispPeak.tol,3,row,1,1);
}
});
Который берет мой первоначальный макет меню из
до
Я попробовал поиск по Google, некоторые люди предложили использовать addRow. Я попробовал несколько вариантов (в настоящее время один закомментирована в сниппета я предоставил
Это заканчивается просто переписав мои кнопки, как показано:.
Я в конечном счете, хочет он, чтобы вставить строка между кнопками как такая (жестко закодированной пикой линией):
Возможно, лучшим решением, но я нашел некоторый успех путем повторного добавлением кнопки элемента s снова, но это создает некоторые ошибки времени выполнения, но работает?
add.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
Peak thisPeak = new Peak();
MenuPeak dispPeak = new MenuPeak(thisPeak);
int row = thisPeak.peakCount();
psMenu.addRow(1+row);
psMenu.add(dispPeak.name,1,row,1,1);
psMenu.add(dispPeak.retTime,2,row,1,1);
psMenu.add(dispPeak.tol,3,row,1,1);
row++;
psMenu.add(save,1,row,1,1);
psMenu.add(cancel,2,row,1,1);
psMenu.add(okay,3,row,1,1);
}
});
Что делали это
Но опять же, ошибка времени выполнения жаловались на добавление дублирующихся детей.
Исключение в потоке "JavaFX Применение Нить" java.lang.IllegalArgumentExcepti на: Дети: дублирующие дети добавил: Родитель = Сетка hgap = 10,0, vgap = 10,0, Alig nment = TOP_CENTER в javafx.scene. родитель $ 2.onProposedChange (Parent.java:454) на com.sun.javafx.collections.VetoableListDecorator.add (VetoableListDeco rator.java:206)
EDIT: ответ правильный и точный реализация моя коррекция:
add.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
Peak thisPeak = new Peak();
MenuPeak dispPeak = new MenuPeak(thisPeak);
int row = 1+thisPeak.peakCount();
psMenu.setRowIndex(save,row);
psMenu.setRowIndex(cancel,row);
psMenu.setRowIndex(okay,row);
psMenu.addRow(row-1, dispPeak.name, dispPeak.retTime, dispPeak.tol);
}
});
Вау !! Я просто это понял.Я принимаю этот ответ! Спасибо! Я много общался с ним. Я обнаружил, что улучшил поведение, установив индекс строки перед добавлением новых элементов, только FYI. Я использовал addrow для добавления моего нового пика, и он вставлялся после кнопок в строке – Chemistpp