Хочу новый язык около Java с силой в GUI

Правильный способ обновления данных таблицы в вашем обратном вызове JS заключается в следующем:

var data = {};
//build your data here
source.data = data;

Где source - это Bokeh ColumnDataSource вашей DataTable. Вам не нужно использовать:

source.change.emit();

Вы делаете это только тогда, когда заменяете только часть своих данных, например, один столбец таблицы. И если data_table является вашим объектом Bokeh DataTable, пропустите также:

target_obj.change.emit();

Дата таблицы обновляется автоматически при обновлении ее ColumnDataSource. Смотрите этот простой пример:

from bokeh.io import show
from bokeh.layouts import widgetbox
from bokeh.models import ColumnDataSource, Slider, DataTable, TableColumn, CustomJS

source = ColumnDataSource(dict(x = list(range(6)), y = [x ** 2 for x in range(6)]))
columns = [TableColumn(field = "x", title = "x"), TableColumn(field = "y", title = "x**2")]
table = DataTable(source = source, columns = columns, width = 320)
slider = Slider(start = 1, end = 20, value = 6, step = 1, title = "i", width = 300)
callback_code = """ i = slider.value;
                    new_data = {"x": [1, 2, 3, 4, 5], "y": [1, 4, 9, 16, 25]}
                    table.source.data = new_data
                    table.width = 320 + i * 25;  """
callback = CustomJS(args = dict(slider = slider, table = table), code = callback_code)
slider.js_on_change('value', callback)
show(widgetbox(slider, table))
5
задан George Stocker 11 April 2009 в 22:45
поделиться

12 ответов

C # и .NET - отличный выбор, особенно если вам нужен язык, очень похожий на Java.

Для начала загрузите Visual Studio Express (бесплатно), и вы сможете создавать приложения для Windows с C # и .NET. Графические интерфейсы создавать так же просто, как перетаскивать элементы управления на форму.

Вы также можете использовать C # для программирования на платформе Linux с портом с открытым исходным кодом .NET, который называется Mono .

8
ответ дан 18 December 2019 в 06:36
поделиться

Имейте в виду, что Swing - не единственный выбор для разработки Java GUI. Существует также:

  • JavaFX : он нацелен на немного другой рынок (например, Flash), но может использоваться для разработки графического интерфейса пользователя;
  • Netbeans Platform ; и
  • Eclipse RCP («Rich Client Platform»).

, хотя Swing на сегодняшний день является наиболее популярным. Однако он, вероятно, наименее современный.

Кроме того, у вас есть:

5
ответ дан 18 December 2019 в 06:36
поделиться

Мне всегда нравится, как в Delphi были сделаны GUI. Но это вещи Windows. C ++ и Qt для вас?

3
ответ дан 18 December 2019 в 06:36
поделиться

Возможно, вы захотите взглянуть на Groovy, он предоставляет хорошую динамическую оболочку вокруг Java, которая делает работу с GUI немного проще и может использовать ваши существующие знания Java. Несмотря на то, что даже с groovy, Swing - не самый простой в использовании инструментарий.

Подробнее о разработке GUI с использованием groovy см. Программирование GUI с помощью Groovy

2
ответ дан 18 December 2019 в 06:36
поделиться

JavaFX - это относительно новая технология для разработки Java GUI. Я не использовал его, но он должен быть намного лучше, чем Swing. Под «лучше» я имею в виду более простое и мощное использование.

Возможно, стоит проверить, если у вас уже есть опыт работы с Java / Swing.

2
ответ дан 18 December 2019 в 06:36
поделиться

Хотя я много лет работал профессиональным программистом на Swing, я бы порекомендовал каркас веб-интерфейса, особенно если вы хотите заниматься этим профессионально. Вот мои предложения, основанные на личном опыте:

Я очень рекомендую проверить Flex - он совершенно бесплатный, если вы студент (как SDK, так и FlexBuilder Eclipse IDE). Вы можете использовать его для создания веб-интерфейсов или настольных приложений через платформу AIR.

В качестве альтернативы я бы воспользовался Google Web Toolkit. Вся разработка выполняется на Java, а компоненты пользовательского интерфейса генерируют JavaScript для разработки в стиле AJAX. У меня был хороший опыт, но стандартная библиотека компонентов пользовательского интерфейса несколько ограничена. Я' Мы нашли SmartGWT отличным дополнением, которое легко интегрируется для создания более богатой библиотеки компонентов. Если вы идете по этому общему пути HTML / JavaScript, также ознакомьтесь с JQuery.

2
ответ дан 18 December 2019 в 06:36
поделиться

Определенно, Delphi .

Почему? Потому что, если вы никогда не программировали GUI, это даст вам очень глубокие знания о том, как работают приложения такого типа, не будучи настолько сложным, как это делают другие языки + IDE.

Кроме того, поскольку он основан на Pascal, вы будете сосредоточены на GUI, а не на самом языке, потому что (Object) Pascal действительно прост, и я думаю, что курс, который вы собираетесь пройти, будет иметь в этом особое значение (GUI, не детали языков).

Еще один плюс в том, что в Delphi есть много библиотек компонентов, и очень легко создать компонент самостоятельно (как я уже сказал, на очень простом языке), так что вы будете очень продуктивны с инструментами в твоих руках.

0
ответ дан 18 December 2019 в 06:36
поделиться

C ++ с wxWidgets ! * ухмыляется, уток и бежит *

1
ответ дан 18 December 2019 в 06:36
поделиться

Есть некоторые люди , которые похоже, очень нравится Flex .

0
ответ дан 18 December 2019 в 06:36
поделиться

Возможно, вы захотите рассмотреть Tcl / Tk. О единственном негативном, что люди говорят об этом, это «выглядит уродливо». Эта часть является дискуссионной - здесь есть еще один вопрос, который решает эту проблему. Большинство людей, имеющих опыт работы с Tk, считают, что это самый простой инструментарий GUI. Эта часть также спорна, хотя я являюсь частью этой школы мысли. Я использовал некоторые MFC, raw X, Motif, Swing, Visual C и пару менее известных наборов инструментов и выбрал бы Tk вместо тех, которые в одно мгновение.

Если Tcl не ваша вещь, есть привязки Tk для других языков, например Python и Ruby. Чтобы узнать больше о tk, вы можете проверить TkDocs , в котором приведены примеры на Tcl, Ruby и Perl. В нем отсутствует Python, потому что интеграция с Python немного отстает от кривой, хотя Python 2.7 очень скоро освоится с современным Tk.

Если вы ищете легкий в освоении и использовании и кроссплатформенный, IMO Tcl / Тк это хороший выбор. Также нет другого языка с лучшей стратегией распространения. Если вас больше интересуют глазные конфеты, чем функциональность или производительность, возможно, вы захотите посмотреть куда-нибудь еще.

Если вы ищете легкий в освоении и использовании и кроссплатформенный, IMO Tcl / Tk - хороший выбор. Также нет другого языка с лучшей стратегией распространения. Если вас больше интересуют глазные конфеты, чем функциональность или производительность, возможно, вы захотите посмотреть куда-нибудь еще.

Если вы ищете легкий в освоении и использовании и кроссплатформенный, IMO Tcl / Tk - хороший выбор. Также нет другого языка с лучшей стратегией распространения. Если вас больше интересуют глазные конфеты, чем функциональность или производительность, возможно, вы захотите посмотреть куда-нибудь еще.

1
ответ дан 18 December 2019 в 06:36
поделиться

Вы можете взглянуть на javaFx

0
ответ дан 18 December 2019 в 06:36
поделиться

Shoes - это набор инструментов для программирования приложений с графическим интерфейсом на Ruby. Он работает кросс-платформенный. Если вы проявите творческий подход, вы сможете делать с ним действительно сложные вещи - посетите the-shoebox.org .

0
ответ дан 18 December 2019 в 06:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: