Форум программистов, компьютерный форум, киберфорум
JavaFX
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
Matthias Ronald Gerard
79 / 219 / 25
Регистрация: 11.08.2022
Сообщений: 2,281
1

Не заполняются строки в TableView

11.06.2023, 07:25. Показов 1231. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет!
Пробую нарисовать в JavaFX таблицу.
Сама таблица и надписи над столбцами выводятся, а вот строки пустые.
Причём курсор устанавливается на пустые строки.
Что не так?

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package application;
 
import javafx.beans.property.*;
 
public class Guestbook{
     
    private SimpleStringProperty guest;
    private SimpleStringProperty text;
     
    Guestbook(String guest, String text){
        this.guest = new SimpleStringProperty(guest);
        this.text = new SimpleStringProperty(text);
    }
     
    public String getGuest(){ return guest.get();}
    public void setGuest(String value){ guest.set(value);}
     
    public String getText(){ return text.get();}
    public void setText(String value){ text.set(value);}
    
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package application;
 
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.layout.FlowPane;
import javafx.scene.control.TableView;
import javafx.scene.control.TableColumn;
import javafx.collections.ObservableList;
import javafx.collections.FXCollections;
import javafx.scene.control.cell.PropertyValueFactory;
 
public class GuestbookWin extends Stage {
 
    public GuestbookWin() throws Exception {
         
        ObservableList<Guestbook> guestbook = FXCollections.observableArrayList(      
            new Guestbook("Guest 1", "lalala"),
            new Guestbook("Guest 2", "123123123123"),
            new Guestbook("Guest 3", "123123123123"),
            new Guestbook("Guest 4", "123123123123")
        );
        
        TableView<Guestbook> table = new TableView<Guestbook>(guestbook);
        table.setPrefWidth(500);
        table.setPrefHeight(500);
     
        TableColumn<Guestbook, String> guestColumn = new TableColumn<Guestbook, String>("Guest");
        guestColumn.setCellValueFactory(new PropertyValueFactory<Guestbook, String>("guest"));
        guestColumn.setPrefWidth(250);
        table.getColumns().add(guestColumn);
         
        TableColumn<Guestbook, String> textColumn = new TableColumn<Guestbook, String>("Text");
        textColumn.setCellValueFactory(new PropertyValueFactory<Guestbook, String>("text"));
        textColumn.setPrefWidth(250);
        table.getColumns().add(textColumn);
         
        FlowPane root = new FlowPane(10, 10, table);
         
        Scene scene = new Scene(root, 500, 500);
          
        this.setScene(scene);
        this.show();
    }
    
}
Миниатюры
Не заполняются строки в TableView  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.06.2023, 07:25
Ответы с готовыми решениями:

Вывести форму регистрации, в которой месяцы заполняются с ассоциативного массива, а дни месяца заполняются циклом
Не понимаю как реализовать данное задание помогите. Нужно вывести форму регистрации, в которой...

Первые четыре строки массива заполняются целыми случайными числами в диапазоне 0…20, а каждый элемент последней строки должен быть равен минимальному
Решите пожалуйста!(ни фига не пойму как!) Разработать программу, в которой создается и выводится...

Сравнить две строки, которые в цикле заполняются числами
Есть код, в котором мы записываем две строки, которые сравниваются, потом находится количество букв...

Выделение строки tableview
Использую qtableview и qfilesystemmodel для просмотра файловой системы. При переходе по папкам...

Выделение первой строки в tableview
Как при запуске окна в представлении автоматически выделять первую строчку как на рисунке? Чтобы не...

1
Matthias Ronald Gerard
79 / 219 / 25
Регистрация: 11.08.2022
Сообщений: 2,281
11.06.2023, 10:12  [ТС] 2
Ошибка
Код
���. 11, 2023 8:56:28 AM javafx.scene.control.cell.PropertyValueFactory getCellDataReflectively
WARNING: Can not retrieve property 'guest' in PropertyValueFactory: javafx.scene.control.cell.PropertyValueFactory@5d2b10bd with provided class type: class application.Guestbook
java.lang.RuntimeException: java.lang.IllegalAccessException: module javafx.base cannot access class application.Guestbook (in module GuestbookFX) because module GuestbookFX does not open application to javafx.base
	at javafx.base@20.0.1/com.sun.javafx.property.PropertyReference.get(PropertyReference.java:173)
	at javafx.controls@20.0.1/javafx.scene.control.cell.PropertyValueFactory.getCellDataReflectively(PropertyValueFactory.java:183)
	at javafx.controls@20.0.1/javafx.scene.control.cell.PropertyValueFactory.call(PropertyValueFactory.java:153)
	at javafx.controls@20.0.1/javafx.scene.control.cell.PropertyValueFactory.call(PropertyValueFactory.java:132)
	at javafx.controls@20.0.1/javafx.scene.control.TableColumn.getCellObservableValue(TableColumn.java:592)
	at javafx.controls@20.0.1/javafx.scene.control.TableColumn.getCellObservableValue(TableColumn.java:577)
	at javafx.controls@20.0.1/javafx.scene.control.TableCell.updateItem(TableCell.java:681)
	at javafx.controls@20.0.1/javafx.scene.control.TableCell.indexChanged(TableCell.java:485)
	at javafx.controls@20.0.1/javafx.scene.control.IndexedCell$1.invalidated(IndexedCell.java:85)
	at javafx.base@20.0.1/javafx.beans.property.IntegerPropertyBase.markInvalid(IntegerPropertyBase.java:113)
	at javafx.base@20.0.1/javafx.beans.property.IntegerPropertyBase.set(IntegerPropertyBase.java:148)
	at javafx.controls@20.0.1/javafx.scene.control.IndexedCell.updateIndex(IndexedCell.java:130)
	at javafx.controls@20.0.1/javafx.scene.control.skin.TableRowSkinBase.updateCells(TableRowSkinBase.java:523)
	at javafx.controls@20.0.1/javafx.scene.control.skin.TableRowSkinBase.<init>(TableRowSkinBase.java:155)
	at javafx.controls@20.0.1/javafx.scene.control.skin.TableRowSkin.<init>(TableRowSkin.java:81)
	at javafx.controls@20.0.1/javafx.scene.control.TableRow.createDefaultSkin(TableRow.java:213)
	at javafx.controls@20.0.1/javafx.scene.control.Control.doProcessCSS(Control.java:910)
	at javafx.controls@20.0.1/javafx.scene.control.Control$1.doProcessCSS(Control.java:88)
	at javafx.controls@20.0.1/com.sun.javafx.scene.control.ControlHelper.processCSSImpl(ControlHelper.java:68)
	at javafx.graphics@20.0.1/com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:147)
	at javafx.graphics@20.0.1/javafx.scene.Parent.doProcessCSS(Parent.java:1401)
	at javafx.graphics@20.0.1/javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at javafx.graphics@20.0.1/com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at javafx.graphics@20.0.1/com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:147)
	at javafx.graphics@20.0.1/javafx.scene.Parent.doProcessCSS(Parent.java:1401)
	at javafx.graphics@20.0.1/javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at javafx.graphics@20.0.1/com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at javafx.graphics@20.0.1/com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:147)
	at javafx.graphics@20.0.1/javafx.scene.Node.processCSS(Node.java:9624)
	at javafx.graphics@20.0.1/javafx.scene.Node.applyCss(Node.java:9711)
	at javafx.controls@20.0.1/javafx.scene.control.skin.VirtualFlow.setCellIndex(VirtualFlow.java:1813)
	at javafx.controls@20.0.1/javafx.scene.control.skin.VirtualFlow.getCell(VirtualFlow.java:1790)
	at javafx.controls@20.0.1/javafx.scene.control.skin.VirtualFlow.getOrCreateCellSize(VirtualFlow.java:3049)
	at javafx.controls@20.0.1/javafx.scene.control.skin.VirtualFlow.getOrCreateCellSize(VirtualFlow.java:3021)
	at javafx.controls@20.0.1/javafx.scene.control.skin.VirtualFlow.recalculateAndImproveEstimatedSize(VirtualFlow.java:3129)
	at javafx.controls@20.0.1/javafx.scene.control.skin.VirtualFlow.recalculateAndImproveEstimatedSize(VirtualFlow.java:3109)
	at javafx.controls@20.0.1/javafx.scene.control.skin.VirtualFlow.recalculateEstimatedSize(VirtualFlow.java:3103)
	at javafx.controls@20.0.1/javafx.scene.control.skin.VirtualFlow$5.invalidated(VirtualFlow.java:860)
	at javafx.base@20.0.1/javafx.beans.property.IntegerPropertyBase.markInvalid(IntegerPropertyBase.java:113)
	at javafx.base@20.0.1/javafx.beans.property.IntegerPropertyBase.set(IntegerPropertyBase.java:148)
	at javafx.controls@20.0.1/javafx.scene.control.skin.VirtualFlow.setCellCount(VirtualFlow.java:904)
	at javafx.controls@20.0.1/javafx.scene.control.skin.TableViewSkinBase.updateItemCount(TableViewSkinBase.java:580)
	at javafx.controls@20.0.1/javafx.scene.control.skin.TableViewSkin.<init>(TableViewSkin.java:123)
	at javafx.controls@20.0.1/javafx.scene.control.TableView.createDefaultSkin(TableView.java:1670)
	at javafx.controls@20.0.1/javafx.scene.control.Control.doProcessCSS(Control.java:910)
	at javafx.controls@20.0.1/javafx.scene.control.Control$1.doProcessCSS(Control.java:88)
	at javafx.controls@20.0.1/com.sun.javafx.scene.control.ControlHelper.processCSSImpl(ControlHelper.java:68)
	at javafx.graphics@20.0.1/com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:147)
	at javafx.graphics@20.0.1/javafx.scene.Parent.doProcessCSS(Parent.java:1401)
	at javafx.graphics@20.0.1/javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at javafx.graphics@20.0.1/com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at javafx.graphics@20.0.1/com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:147)
	at javafx.graphics@20.0.1/javafx.scene.Node.processCSS(Node.java:9624)
	at javafx.graphics@20.0.1/javafx.scene.Scene.doCSSPass(Scene.java:587)
	at javafx.graphics@20.0.1/javafx.scene.Scene.preferredSize(Scene.java:1786)
	at javafx.graphics@20.0.1/javafx.scene.Scene$2.preferredSize(Scene.java:411)
	at javafx.graphics@20.0.1/com.sun.javafx.scene.SceneHelper.preferredSize(SceneHelper.java:65)
	at javafx.graphics@20.0.1/javafx.stage.Window$12.invalidated(Window.java:1163)
	at javafx.base@20.0.1/javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:110)
	at javafx.base@20.0.1/javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:145)
	at javafx.graphics@20.0.1/javafx.stage.Window.setShowing(Window.java:1239)
	at javafx.graphics@20.0.1/javafx.stage.Window.show(Window.java:1254)
	at javafx.graphics@20.0.1/javafx.stage.Stage.show(Stage.java:277)
	at GuestbookFX/application.GuestbookWin.<init>(GuestbookWin.java:42)
	at GuestbookFX/application.Main.newWindow(Main.java:33)
	at GuestbookFX/application.Main.lambda$0(Main.java:20)
	at javafx.base@20.0.1/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
	at javafx.base@20.0.1/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:232)
	at javafx.base@20.0.1/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:189)
	at javafx.base@20.0.1/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
	at javafx.base@20.0.1/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
	at javafx.base@20.0.1/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base@20.0.1/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at javafx.base@20.0.1/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base@20.0.1/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at javafx.base@20.0.1/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base@20.0.1/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
	at javafx.base@20.0.1/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
	at javafx.base@20.0.1/javafx.event.Event.fireEvent(Event.java:198)
	at javafx.graphics@20.0.1/javafx.scene.Node.fireEvent(Node.java:8944)
	at javafx.controls@20.0.1/javafx.scene.control.Button.fire(Button.java:203)
	at javafx.controls@20.0.1/com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:207)
	at javafx.controls@20.0.1/com.sun.javafx.scene.control.inputmap.InputMap.handle(InputMap.java:274)
	at javafx.base@20.0.1/com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:247)
	at javafx.base@20.0.1/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
	at javafx.base@20.0.1/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:232)
	at javafx.base@20.0.1/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:189)
	at javafx.base@20.0.1/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
	at javafx.base@20.0.1/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
	at javafx.base@20.0.1/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base@20.0.1/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at javafx.base@20.0.1/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base@20.0.1/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at javafx.base@20.0.1/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base@20.0.1/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
	at javafx.base@20.0.1/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
	at javafx.base@20.0.1/javafx.event.Event.fireEvent(Event.java:198)
	at javafx.graphics@20.0.1/javafx.scene.Scene$MouseHandler.process(Scene.java:3980)
	at javafx.graphics@20.0.1/javafx.scene.Scene.processMouseEvent(Scene.java:1890)
	at javafx.graphics@20.0.1/javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2704)
	at javafx.graphics@20.0.1/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:411)
	at javafx.graphics@20.0.1/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:301)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
	at javafx.graphics@20.0.1/com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(GlassViewEventHandler.java:450)
	at javafx.graphics@20.0.1/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:424)
	at javafx.graphics@20.0.1/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:449)
	at javafx.graphics@20.0.1/com.sun.glass.ui.View.handleMouseEvent(View.java:551)
	at javafx.graphics@20.0.1/com.sun.glass.ui.View.notifyMouse(View.java:937)
	at javafx.graphics@20.0.1/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
	at javafx.graphics@20.0.1/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:185)
	at java.base/java.lang.Thread.run(Thread.java:1623)
Caused by: java.lang.IllegalAccessException: module javafx.base cannot access class application.Guestbook (in module GuestbookFX) because module GuestbookFX does not open application to javafx.base
	at javafx.base@20.0.1/com.sun.javafx.property.MethodHelper.invoke(MethodHelper.java:70)
	at javafx.base@20.0.1/com.sun.javafx.property.PropertyReference.get(PropertyReference.java:171)
	... 110 more
Добавлено через 1 час 15 минут
Решено.
Добавил в определение модуля для проекта opens application to javafx.base

Java
1
2
3
4
5
module GuestbookFX {
    requires javafx.controls;
    
    opens application to javafx.base, javafx.graphics, javafx.fxml;
}
0
11.06.2023, 10:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.06.2023, 10:12
Помогаю со студенческими работами здесь

Detail pane для строки в TableView
Добрый день. Возможно ли реализовать функционал как на скриншоте для TableView в JavaFX?

Получить номер выделенной строки tableView
подскажите как получить номер выделенной строки tableView. надо передать в переменную row номер...

TableView , заполнение данными , пустые строки
Привет! Возникли проблемы с отрисовкой TableView на простом примере таблицы с одной колонкой....

Изменить цвет выбранной строки в TableView
как можно изменить цвет выбранной строки в Tabelview при doubleclick? и как можно раскрасить...

Получение сигнала после выбора строки в tableview
Доброго времени суток. Парни подскажите есть ли какой нибудь сигнал при двойном нажатии на строку...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru