Есть TabPane
, в нем создаются Tab
, в Tab
помещается TextArea
. Есть Button
, который что-то должен делать с открытым TextArea
в Tab
. Как мне получить этот TextArea
?
Думал отслеживать нажатие на элемент (не понял), или когда в фокусе становится элемент(пробовал, получалось отловить все кроме TextArea
и TextField
(это я к примеру)).
Привожу код метода создания Табов (Хотя вряд ли он нужен).
@Override
public boolean addTabOnView(TabPane tabPane, File file) {
Tab tab = new Tab(file.getName());
AnchorPane anchorPane = new AnchorPane();
TextArea textArea = null;
try {
textArea = new TextArea(readFile(file));
} catch (IOException e) {
e.printStackTrace();
return false;
}
AnchorPane.setBottomAnchor(textArea, 0.0);
AnchorPane.setTopAnchor(textArea, 0.0);
AnchorPane.setLeftAnchor(textArea, 0.0);
AnchorPane.setRightAnchor(textArea, 0.0);
anchorPane.getChildren().add(textArea);
tab.setContent(anchorPane);
tabPane.getTabs().add(tab);
return true;
}
ArrayList<String> stringArrayList = new ArrayList<String>();
String readFile(File file) throws IOException {
Files.lines(file.toPath(), StandardCharsets.UTF_8).forEach(a -> stringArrayList.add(a));
String string = "";
for (String str:stringArrayList) {
string += str;
string += "\n";
}
return string;
}
При условии, что наполнение таба контентом в методе addTabOnView
не изменится, то:
Tab tab = tabPane.getTabs().filtered( Tab::isSelected ).get( 0 );
//или
Tab tab = tabPane.getTabs().stream().filter( Tab::isSelected ).findFirst().get();
TextArea area = (TextArea)((Parent)tab.getContent()).getChildrenUnmodifiable().get( 0 );
Пусть addTabOnView(TabPane tabPane, File file)
возвращает значение созданного textArea = new TextArea(readFile(file));
и всего делов.
Либо просто из таба забирать как то так:
tab.getContent().getChildren().get(0);
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Как я понял, создается 4 нити, и каждая из них должна увеличивать на 1 каждый элемент массива valuesНо этого не происходит
Такая ситуация - внутри метода вызываю Systemout
Как на java в цикле от 0 до 1000 напечатать четные числа прописью? Есть ли где то готовое решение для получения числа прописью?