В чем разница между настольным приложением java и javafx? - PullRequest
10 голосов
/ 09 августа 2010

В чем разница между "обычным" настольным Java-приложением (с AWT или Swing) и Java-приложением, созданным с JavaFX?

Каковы преимущества и недостатки каждого из них?

Ответы [ 4 ]

14 голосов
/ 17 августа 2010

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

Java Swing

Плюсы:

  • Улучшенный визуальный дизайнер и поддержка IDE
  • Более полнофункциональный набор элементов управления
  • Хорошо подходит для создания бизнес-приложений, таких как пользовательские интерфейсы, поверх базы данных, где вам не нужны возможности, выходящие за рамки стандартных (и сторонних) элементов управления.

Минусы

  • Плохая поддержка мультимедиа
  • Создание пользовательских элементов управления или пользовательских скинов очень сложно
  • Нет поддержки анимации
  • Синтаксис Java может быть неудобным для создания пользовательских интерфейсов.В среде IDE эта проблема не возникает, но если вам когда-либо придется что-то делать вручную, это может стать уродливым.

JavaFX

Плюсы

  • Достойная поддержка мультимедиа
  • Легко создавать пользовательские элементы управления, а все существующие элементы управления можно создавать с помощью скинов с помощью CSS (хотя я еще не пробовал CSS).
  • Поддержка анимации хороша -не совсем так хорошо, как flash, но его достаточно для основных анимаций.
  • Синтаксис кажется лучше подходящим для создания пользовательских интерфейсов, особенно для их ручного кодирования - что хорошо, потому что вам нужно будет вручную кодировать их.
  • Хорошо подходит для создания мультимедийных приложений или приложений, где вам нужен индивидуальный вид.

Минусы

  • Визуальный дизайнер нуждается в работе, и лично я ею не пользуюсь,Это может быть большим негативом в зависимости от ваших потребностей.
  • По-прежнему не хватает некоторых элементов управления, но это становится лучше.Существующие элементы управления, кажется, работают хорошо.
  • Интеграция с Swing существует, но они работают над изменением двигателя, чтобы он больше не зависел от Swing.Неясно, насколько хорошо будут работать элементы управления Swing из JavaFX в будущем.Поэтому я бы не стал избегать использования элементов управления Swing в JavaFX, когда это возможно.
4 голосов
/ 13 апреля 2013

JavaFX улучшается быстрее и становится лучше в использовании, чем Swing.

JavaFX - это платформа для GUI с несколькими преимуществами, включая анимацию и интеграцию CSS. Это может помочь в создании множества 2D и почти трехмерных вещей, которые вы можете увидеть в CSS3.

JavaFX - это чистая Java, поэтому вам не нужно изучать другой язык, кроме старой доброй Java, которую вы знаете. JavaFX - это моя любимая платформа графического интерфейса для настольных компьютеров и предприятий, и я использую Swing только при работе со старыми прикладными средами (т. Е. При интеграции с оборудованием). Единственный недостаток, который я знаю, это то, что конструктор сцены еще не интегрирован, а использование элементов управления и API требует некоторой мозговой работы, но это незначительно.

Для меня нет разницы между рабочим столом Java и JavaFX, поскольку JavaFX можно использовать для разработки настольных приложений, корпоративных приложений и апплетов. Вы можете просмотреть текущие версии JavaFX, чтобы проверить его возможности.

2 голосов
/ 09 августа 2010

Это не недостаток / преимущество, а скорее понимание того, что каждый может предоставить, и старая поговорка «используйте правильный инструмент для работы».

Ответ из ответов Yahoo Источник этого ответа :

javaFX на самом деле другой язык (похожий, но с другим синтаксисом), но он работает на JVM и может использоватьКлассы JavaВ основном разработан для "RIA" (многофункциональные интернет-приложения), для самых разных устройств.Довольно много встроенных функций для разработки причудливых и ярких пользовательских интерфейсов, без всего того, что нужно печатать на более низкоуровневом языке, таком как Java.

Действительно, "сравнивать" довольно сложно;JavaFX использует все преимущества Java и создает на нем платформу для разработки RIA.

  • JavaFX требует JVM;но просто наличие Java не означает, что у вас есть JavaFX.
  • Таким образом, JavaFX по своей природе не является частью Java.
  • поэтому любая платформа, которая не поддерживает Java, не будет поддерживать JavaFX (.... то есть iPhone, iPad) - пока.
  • Обратите внимание, что iPhone и iPad также не поддерживают Flash, аналогичного конкурента в этом пространстве.(... Возможно, Flex или Silverlight являются лучшими примерами конкурирующих технологий ....)

Источник (и):
Javafx wikiepdia
Краткий обзор javafx
домашняя страница javafx аналогичный вопрос stackoverflow

0 голосов
/ 27 января 2015

Класс JTable - это еще один компонент Swing, которому нет аналога в AWT.JTable предоставляет очень гибкую возможность создавать и отображать таблицы.Позволяет строить таблицы из массивов или векторов объектов или из объектов, которые реализуют интерфейс TableModel.

Интерфейс JTableModel определяет методы для объектов, которые определяют содержимое таблицы.Класс обеспечивает реализацию AbstractTableModel предопределенного интерфейса JTableModel.Этот класс обычно расширяется, чтобы обеспечить пользовательскую реализацию таблицы модели.Класс JTable предоставляет возможность редактировать таблицы.метод setCellEditor () позволяет объекту интерфейса TableCellEditor идентифицироваться как ячейки таблицы редактора.

import java.awt.*; 
import javax.swing.*; 
import javax.swing.table.*; 
public class JavaExampleTableInJApplet extends JApplet 
 { 
    Object[] Dt = new Object[5]; 
    DefaultTableModel DfltTblModl = new DefaultTableModel(); 
    JTable Tbl = new JTable(DfltTblModl); 
    public void init() 
     { 
        for(int clmn = 0; clmn < 5; clmn++) 
           { 
             DfltTblModl.addColumn("Column"+clmn); 
           } 
             for(int row = 0; row < 10; row++) 
             { 
                     for(int clmn = 0; clmn < 5; clmn++) 
                  { 
                          Dt[clmn] = "Cell " + row + "," + clmn; 
                      } 
                          DfltTblModl.addRow(Dt); 
                 } 
                    getContentPane().add(new JScrollPane(Tbl)); 
      } 
  } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...