Задача такова: нужно нарисовать 2 линии на Pane
:
Есть класс Locomotive в котором рисуются линии:
@Override
public void drawLocomotive() {
drawBaseLocomotive();
}
protected Node drawBaseLocomotive() {
Line line = new Line(30,40,50,60);
Line line2 = new Line(50,60,70,80);
return line;
}
И класс Controller(контроллер XML) в котором есть полотно drawPanel
:
public class Controller implements Initializable{
@FXML
Pane drawPanel;
public void btnSetBaseLocomotive_Click(ActionEvent actionEvent) {
Locomotive locomotive = new Locomotive();
inter = new Locomotive(maxSpeed, maxCountPass, weight, color);
drawPanel.getChildren().addAll(locomotive.drawBaseLocomotive());
}
}
Как реализовать список,который будет содержать две линии,и затем передать его в
drawPanel.getChildren().addAll(locomotive.drawBaseLocomotive());
Сейчас он рисует одну линию вот так:
Вариантов несколько:
1) Заврапить в другой Node
protected Node drawBaseLocomotive() {
Line line = new Line(30,40,50,60);
Line line2 = new Line(50,60,70,80);
/* нужно проверять, могут быть смещения*/
return new Group( line, line2 );
// return new AnchorPane( line, line2 );
// return new Pane( line, line2 );
}
2) Передать массив или список
protected Node[] drawBaseLocomotive() {
Line line = new Line(30,40,50,60);
Line line2 = new Line(50,60,70,80);
return new Node[]{ line, line2 };
}
drawPanel.getChildren().addAll(Arrays.asList(locomotive.drawBaseLocomotive()));
protected List<Nide> drawBaseLocomotive() {
Line line = new Line(30,40,50,60);
Line line2 = new Line(50,60,70,80);
List<Node> list = new ArrayList<>(2);
list.addAll( line, line2 );
return list;
}
drawPanel.getChildren().addAll(locomotive.drawBaseLocomotive());
3) Создать класс-кортеж
private class Tuple {
public final Line line, line2;
public Tuple( Line line, Line line2 ) {
this.line = line;
this.line2 = line2;
}
}
protected Tuple drawBaseLocomotive() {
Line line = new Line(30,40,50,60);
Line line2 = new Line(50,60,70,80);
return new Tuple( line, line2 );
}
Tuple tuple = locomotive.drawBaseLocomotive();
drawPanel.getChildren().addAll(tuple.line,tuple.line2);
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Допустим захотел я написать движок для игр, зная только JavaКак это возможно реализовать?
Есть поле address(TextView)Нужно вывести данные по выполнению запроса