Указанный вами подход к отображению работоспособности.
Наиболее возможная ошибка - не подгружен / не существует связанный ClientsEntity. В этом случае появился бы NPE.
Так же, скорее всего PropertyValueFactory не отображает данные (зависит от того, то как вы построили модель).
Вот простой пример:
import javafx.application.Application;
import javafx.beans.property.SimpleObjectProperty;
import javafx.beans.property.SimpleStringProperty;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Scene;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.stage.Stage;
public class Main extends Application {
static ObservableList<OrdersEntity> getTestData() {
ClientsEntity clientsEntity = new ClientsEntity();
clientsEntity.idclients = 1;
clientsEntity.fio = "Иванов Иван Иванович";
ClientsEntity clientsEntity1 = new ClientsEntity();
clientsEntity1.idclients = 2;
clientsEntity1.fio = "Петров Петр Петрович";
ClientsEntity clientsEntity2 = new ClientsEntity();
clientsEntity2.idclients = 3;
clientsEntity2.fio = "Николаев Николай Николаевич";
OrdersEntity ordersEntity = new OrdersEntity();
ordersEntity.idorders = 1;
ordersEntity.clientsByIdclients = clientsEntity;
OrdersEntity ordersEntity1 = new OrdersEntity();
ordersEntity1.idorders = 2;
// ordersEntity1.clientsByIdclients = clientsEntity1;
OrdersEntity ordersEntity2 = new OrdersEntity();
ordersEntity2.idorders = 3;
ordersEntity2.clientsByIdclients = clientsEntity2;
return FXCollections.observableArrayList(ordersEntity, ordersEntity1, ordersEntity2);
}
@Override
public void start(Stage primaryStage) throws Exception {
TableColumn<OrdersEntity, Integer> tcOrdersEntityId = new TableColumn<>("Order ID");
tcOrdersEntityId.setCellValueFactory(param -> new SimpleObjectProperty<>(param.getValue().idorders));
TableColumn<OrdersEntity, Integer> tcClientsEntityId = new TableColumn<>("Client ID");
tcClientsEntityId.setCellValueFactory(param -> new SimpleObjectProperty<>(
param.getValue().clientsByIdclients == null ? null : param.getValue().clientsByIdclients.idclients
));
TableColumn<OrdersEntity, String> tcClientsEntityFio = new TableColumn<>("Client FIO");
tcClientsEntityFio.setCellValueFactory(param -> new SimpleStringProperty(
param.getValue().clientsByIdclients == null ? null : param.getValue().clientsByIdclients.fio
));
TableView<OrdersEntity> tableView = new TableView<>();
tableView.getColumns().addAll(tcOrdersEntityId, tcClientsEntityId, tcClientsEntityFio);
tableView.setItems(getTestData());
primaryStage.setScene(new Scene(tableView, 300, 300));
primaryStage.show();
}
static class OrdersEntity {
int idorders;
ClientsEntity clientsByIdclients;
}
static class ClientsEntity {
int idclients;
String fio;
}
}
Короткий ответ: IBus с ibus.el; Gnome Ctrl+Shift+U ⇒ Emacs C-x 8 RET
Поддержка Emacs для более чем 8-разрядных наборов символов поступает из IBus , что примерно равно старый как Unicode (он основан на поддержке японцев) и намного старше, чем широко распространенная поддержка Unicode (с точки зрения программ, поддерживающих текст, шрифты Unicode и т. д.). Хорошая поддержка Unicode поставляется с GNU Emacs 23, которая по умолчанию является версией Ubuntu 10.04. Приемлемая поддержка Unicode поставлялась с GNU Emacs 22, которая была стандартной версией Ubuntu 8.04. Предыдущие версии имели некоторую поддержку Unicode, но чаще встречались ошибки или ограничения.
Emacs не использует Gnome, поэтому вы не можете использовать методы ввода Gnome. Например, Ctrl + Shift + U для вставки кодовой точки по шестнадцатеричному коду является функцией Gnome, поэтому в Emacs она не работает. Нативный эквивалент Emacs - Ctrl + Q, который по историческим причинам должен сопровождаться восьмеричным кодом; если вы предпочитаете шестнадцатеричный, настройте ibus.el на значение 16. Аналогичная команда Emacs - C-x 8 RET (ucs-insert; если вы ее часто используете, вы можете привязать ее к более короткому ключу последовательность), за которым может следовать шестнадцатеричная кодовая точка или имя символа юникода с завершением.
Emacs имеет свой вариант , а также может использовать методы ввода системы, такие как как UIM (установить ucs-insert . Поддержка IBus относительно новая, вам нужно ibus.el, чего нет в Lucid, и я думаю, что не в Maverick, см. также IBus в вики Emacs. [ ! d16]
GNU Emacs 23.x имеет встроенную поддержку Unicode для кодированного UTF-8 текста. Он также обеспечивает поддержку UTF-16. Я действительно рекомендую вам установить пакет emacs23, чтобы избежать нескольких ошибок в Emacs, связанных с проблемами Mule.
И чтобы попытаться избежать проблемы с интеллектуальной входной шиной, вы можете установить системы ввода Anthy. Я видел, что он очень хорошо работает для японцев:
sudo apt-get install anthy anthy-el
После его установки отредактируйте свой .emacsrc, чтобы включить текст ниже:
; Set load path for anthy.el
(push "/usr/share/emacs/site-lisp/anthy/" load-path)
; Load anthy.el
(load-library "leim-list")
(load-library "anthy")
;; Workarounds and customizations
; Fix slow input response in emacs23
(if (>= emacs-major-version 23)
(setq anthy-accept-timeout 1))
; Set japanese-anthy as the default input-method
(setq default-input-method "japanese-anthy")
; Shift-space to toggle anthy-mode (default is Ctrl-\)
(global-set-key (kbd "S-SPC") 'anthy-mode)
; Map wide-space to hankaku-space
(setq anthy-wide-space " ")
Если это не так, работа для вас, возможно, вы обнаружили ошибку в Emacs относительно ее поддержки iBus.
GNU Emacs 23.x имеет встроенную поддержку Unicode для кодированного UTF-8 текста. Он также обеспечивает поддержку UTF-16. Я действительно рекомендую вам установить пакет emacs23 , чтобы избежать нескольких ошибок в Emacs, связанных с проблемами Mule.
И попытаться избежать проблемы с Intelligent Input Bus вы можете установить системы ввода Anthy. Я видел, что он очень хорошо работает для японцев:
sudo apt-get install anthy anthy-el
После его установки отредактируйте свой .emacsrc для включить текст ниже:
; Установите путь загрузки для anthy.el (нажмите «/ usr / share / emacs / site-lisp / anthy /» load-path); Загрузите anthy.el (загрузочная библиотека «leim-list») (загрузочная библиотека «anthy») ;; Методы обхода и настройки; Исправьте медленный ответ ввода в emacs23 (если (& gt; = emacs-major-version 23) (setq anthy-accept-timeout 1)); Установите japanese-anthy как метод ввода по умолчанию (setq default-input-method "japanese-anthy"); Shift-space для переключения anthy-mode (по умолчанию - Ctrl- \) (глобальный набор-ключ (kbd "S-SPC") 'anthy-mode);
Если это не сработает для вас, возможно, вы обнаружили ошибку в Emacs относительно ее поддержки для IBUS.
GNU Emacs 23.x имеет встроенную поддержку Unicode для кодированного UTF-8 текста. Он также обеспечивает поддержку UTF-16. Я действительно рекомендую вам установить пакет emacs23 , чтобы избежать нескольких ошибок в Emacs, связанных с проблемами Mule.
И попытаться избежать проблемы с Intelligent Input Bus вы можете установить системы ввода Anthy. Я видел, что он очень хорошо работает для японцев:
sudo apt-get install anthy anthy-el
После его установки отредактируйте свой .emacsrc для включить текст ниже:
; Установите путь загрузки для anthy.el (нажмите «/ usr / share / emacs / site-lisp / anthy /» load-path); Загрузите anthy.el (загрузочная библиотека «leim-list») (загрузочная библиотека «anthy») ;; Методы обхода и настройки; Исправьте медленный ответ ввода в emacs23 (если (& gt; = emacs-major-version 23) (setq anthy-accept-timeout 1)); Установите japanese-anthy как метод ввода по умолчанию (setq default-input-method "japanese-anthy"); Shift-space для переключения anthy-mode (по умолчанию - Ctrl- \) (глобальный набор-ключ (kbd "S-SPC") 'anthy-mode);
Если это не сработает для вас, возможно, вы обнаружили ошибку в Emacs относительно ее поддержки для IBUS.
GNU Emacs 23.x имеет встроенную поддержку Unicode для кодированного UTF-8 текста. Он также обеспечивает поддержку UTF-16. Я действительно рекомендую вам установить пакет emacs23 , чтобы избежать нескольких ошибок в Emacs, связанных с проблемами Mule.
И попытаться избежать проблемы с Intelligent Input Bus вы можете установить системы ввода Anthy. Я видел, что он очень хорошо работает для японцев:
sudo apt-get install anthy anthy-el
После его установки отредактируйте свой .emacsrc для включить текст ниже:
; Установите путь загрузки для anthy.el (нажмите «/ usr / share / emacs / site-lisp / anthy /» load-path); Загрузите anthy.el (загрузочная библиотека «leim-list») (загрузочная библиотека «anthy») ;; Методы обхода и настройки; Исправьте медленный ответ ввода в emacs23 (если (& gt; = emacs-major-version 23) (setq anthy-accept-timeout 1)); Установите japanese-anthy как метод ввода по умолчанию (setq default-input-method "japanese-anthy"); Shift-space для переключения anthy-mode (по умолчанию - Ctrl- \) (глобальный набор-ключ (kbd "S-SPC") 'anthy-mode);
Если это не сработает для вас, возможно, вы обнаружили ошибку в Emacs относительно ее поддержки для IBUS.
GNU Emacs 23.x имеет встроенную поддержку Unicode для кодированного UTF-8 текста. Он также обеспечивает поддержку UTF-16. Я действительно рекомендую вам установить пакет emacs23 , чтобы избежать нескольких ошибок в Emacs, связанных с проблемами Mule.
И попытаться избежать проблемы с Intelligent Input Bus вы можете установить системы ввода Anthy. Я видел, что он очень хорошо работает для японцев:
sudo apt-get install anthy anthy-el
После его установки отредактируйте свой .emacsrc для включить текст ниже:
; Установите путь загрузки для anthy.el (нажмите «/ usr / share / emacs / site-lisp / anthy /» load-path); Загрузите anthy.el (загрузочная библиотека «leim-list») (загрузочная библиотека «anthy») ;; Методы обхода и настройки; Исправьте медленный ответ ввода в emacs23 (если (& gt; = emacs-major-version 23) (setq anthy-accept-timeout 1)); Установите japanese-anthy как метод ввода по умолчанию (setq default-input-method "japanese-anthy"); Shift-space для переключения anthy-mode (по умолчанию - Ctrl- \) (глобальный набор-ключ (kbd "S-SPC") 'anthy-mode);
Если это не сработает для вас, возможно, вы обнаружили ошибку в Emacs относительно ее поддержки для IBUS.
GNU Emacs 23.x имеет встроенную поддержку Unicode для кодированного UTF-8 текста. Он также обеспечивает поддержку UTF-16. Я действительно рекомендую вам установить пакет emacs23 , чтобы избежать нескольких ошибок в Emacs, связанных с проблемами Mule.
И попытаться избежать проблемы с Intelligent Input Bus вы можете установить системы ввода Anthy. Я видел, что он очень хорошо работает для японцев:
sudo apt-get install anthy anthy-el
После его установки отредактируйте свой .emacsrc для включить текст ниже:
; Установите путь загрузки для anthy.el (нажмите «/ usr / share / emacs / site-lisp / anthy /» load-path); Загрузите anthy.el (загрузочная библиотека «leim-list») (загрузочная библиотека «anthy») ;; Методы обхода и настройки; Исправьте медленный ответ ввода в emacs23 (если (& gt; = emacs-major-version 23) (setq anthy-accept-timeout 1)); Установите japanese-anthy как метод ввода по умолчанию (setq default-input-method "japanese-anthy"); Shift-space для переключения anthy-mode (по умолчанию - Ctrl- \) (глобальный набор-ключ (kbd "S-SPC") 'anthy-mode);
Если это не сработает для вас, возможно, вы обнаружили ошибку в Emacs относительно ее поддержки для IBUS.
Alt + Release + Alt_L
(для запуска IBus) был захвачен Emacs, но IBus просто не запускался; но это происходит в другом месте ... То, что Anthy работает, может быть (?) только потому, что это выделенный Emacs IME (который по его описанию apt
). Я был бы рад использовать специальный IME, но я сомневаюсь, что Анти подойдет, потому что мне нужен Devanagari IME .... но независимо от того, работает ли IBus , я все еще озадачен.
– Peter.O
13 November 2010 в 22:21
Короткий ответ: IBus с ibus.el ; Gnome Ctrl + Shift + U
⇒ Emacs Cx 8 RET
Поддержка Emacs для более чем 8-разрядных наборов символов поступает из MULE , который примерно такой же старый, как Unicode (он основан на поддержке японцев) и намного старше, чем широко распространенная поддержка Unicode (с точки зрения программ, поддерживающих текст, шрифты Unicode и т. д.). Хорошая поддержка Unicode поставляется с GNU Emacs 23, которая по умолчанию является версией Ubuntu 10.04. Приемлемая поддержка Unicode поставлялась с GNU Emacs 22, которая была стандартной версией Ubuntu 8.04. В предыдущих версиях у была некоторая поддержка Unicode, но чаще встречались ошибки или ограничения.
Emacs не использует Gnome, поэтому вы не можете использовать вход Gnome методы в нем. Например, Ctrl + Shift + U для вставки кодовой точки по шестнадцатеричному коду является функцией Gnome, поэтому в Emacs она не работает. Нативный эквивалент Emacs - Ctrl + Q, который по историческим причинам должен сопровождаться восьмеричным кодом; если вы предпочитаете шестнадцатеричный, настройте read-quoted-char-radix на значение 16. Аналогичная команда Emacs - это Cx 8 RET
( ] ucs-insert , если вы часто используете его, вы можете привязать его к более короткой последовательности клавиш), за которым может следовать шестнадцатеричная кодовая точка или имя символа юникода с завершением.
У Emacs есть собственный набор методов ввода , а также могут использовать методы ввода системы, такие как UIM (установить uim-el . Поддержка IBus относительно новая, вам нужно ibus.el , чего нет в Lucid, и я думаю, что не в Maverick, см. также IBus на Emacs вики .
GNU Emacs 23.x имеет встроенную поддержку Unicode для кодированного UTF-8 текста. Он также обеспечивает поддержку UTF-16. Я действительно рекомендую вам установить пакет emacs23, чтобы избежать нескольких ошибок в Emacs, связанных с проблемами Mule.
И чтобы попытаться избежать проблемы с интеллектуальной входной шиной, вы можете установить системы ввода Anthy. Я видел, что он очень хорошо работает для японцев:
sudo apt-get install anthy anthy-el
После его установки отредактируйте свой .emacsrc, чтобы включить текст ниже:
; Set load path for anthy.el
(push "/usr/share/emacs/site-lisp/anthy/" load-path)
; Load anthy.el
(load-library "leim-list")
(load-library "anthy")
;; Workarounds and customizations
; Fix slow input response in emacs23
(if (>= emacs-major-version 23)
(setq anthy-accept-timeout 1))
; Set japanese-anthy as the default input-method
(setq default-input-method "japanese-anthy")
; Shift-space to toggle anthy-mode (default is Ctrl-\)
(global-set-key (kbd "S-SPC") 'anthy-mode)
; Map wide-space to hankaku-space
(setq anthy-wide-space " ")
Если это не так, работа для вас, возможно, вы обнаружили ошибку в Emacs относительно ее поддержки iBus.
GNU Emacs 23.x имеет встроенную поддержку Unicode для кодированного UTF-8 текста. Он также обеспечивает поддержку UTF-16. Я действительно рекомендую вам установить пакет emacs23, чтобы избежать нескольких ошибок в Emacs, связанных с проблемами Mule.
И чтобы попытаться избежать проблемы с интеллектуальной входной шиной, вы можете установить системы ввода Anthy. Я видел, что он очень хорошо работает для японцев:
sudo apt-get install anthy anthy-el
После его установки отредактируйте свой .emacsrc, чтобы включить текст ниже:
; Set load path for anthy.el
(push "/usr/share/emacs/site-lisp/anthy/" load-path)
; Load anthy.el
(load-library "leim-list")
(load-library "anthy")
;; Workarounds and customizations
; Fix slow input response in emacs23
(if (>= emacs-major-version 23)
(setq anthy-accept-timeout 1))
; Set japanese-anthy as the default input-method
(setq default-input-method "japanese-anthy")
; Shift-space to toggle anthy-mode (default is Ctrl-\)
(global-set-key (kbd "S-SPC") 'anthy-mode)
; Map wide-space to hankaku-space
(setq anthy-wide-space " ")
Если это не так, работа для вас, возможно, вы обнаружили ошибку в Emacs относительно ее поддержки iBus.