Добавление графического интерфейса в существующую программу на основе консоли Java

Я работал над консольной программой, которая действует как инвентарь объектов Plant.

У меня есть родительский класс «Растение», у которого есть дочерние классы «Цветок», «Сорняк» и т. д. Эти объекты добавляются, удаляются, отображаются, просматриваются через другой класс, содержащий основной метод и методы для действий, описанных выше.

Методы/действия выбираются пользователем через консольный ввод, обработанный оператором switch.

Мой вопрос заключается в следующем: мы добавляем графический интерфейс в эту консольную программу, используя JFrame, JPanels и т. д. Будет ли правильным способом сделать это, создав новый класс для интерфейса и новый основной метод в этом классе запустить программу? Я бы, конечно, изменил прежний метод main на метод, вызываемый новым main.


person imnotmarvin    schedule 14.04.2014    source источник


Ответы (1)


Переход от консольной программы требует гораздо большего, чем просто изменение main методов. Программы с графическим интерфейсом управляются событиями. Таким образом, вы не будете запускать бесконечные циклы, как в консольной программе.

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

Итак, несколько советов.

  • Вам следует просмотреть руководства и изучить некоторые основные компоненты и как они работают. Некоторые из основных — это JLabel, JTextField, JButton.

  • Вам обязательно нужно сосредоточиться на том, как писать прослушиватели событий. Некоторые из основных, на которых вы, возможно, захотите сосредоточиться, это ActionListener для нажатий кнопок MouseListener для событий мыши.

  • Следует научиться правильно размещать компоненты. Некоторые из основных макетов, на которых вы, возможно, захотите сосредоточиться, — это GridLayout, BorderLayout и FlowLayout.

  • Вы хотите узнать об основных контейнерах, таких как JFrame и JPanel и изучите их возможности

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

person Paul Samsotha    schedule 14.04.2014
comment
Благодаря peeskillet, я разбираюсь в функциях макета, JFrames, JPanels, JButtons и других физических аспектах графического интерфейса (по крайней мере, в общих чертах) и разработал свой интерфейс. Похоже, я не очень хорошо сформулировал свой вопрос. Отчасти мне было интересно, можно ли взять мои методы, которые я написал для программы, и преобразовать их в actionListeners, изменив заголовки методов. Я бы также изменил свои Sys in и Sys out на JOptionPanes, если бы можно было изменить методы на прослушиватели действий. - person imnotmarvin; 15.04.2014
comment
Опубликуйте пример одного из этих методов и объясните, что он делает, и я постараюсь дать некоторое представление - person Paul Samsotha; 15.04.2014
comment
И, возможно, примерный поток программы (просто объяснение в порядке) - person Paul Samsotha; 15.04.2014