Взаимодействие между классом GUI и классом логики? - PullRequest
2 голосов
/ 04 января 2012

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

До сих пор я только использовал текстовый класс Menu с оператором Swich для обработки простого ввода с помощью Scanner, а затем для обработки всех методов get и set. Но я думаю, мне это больше не нужно, и вместо этого я мог бы создать некоторый класс Logic для обработки всех методов get и set в объектах в зависимости от ввода от пользователя. Но для начала, как мне создать простое меню в окне и получить входное значение из класса GUI в этот класс Logic и его методы?

Я добавляю простой тестовый класс GUI, который я сделал, чтобы запустить эту задачу, но, боюсь, что-то не хватает?

import javax.swing.*;
import java.awt.*;

class Guitest extends JFrame {

JTextField inputLine;
JLabel text;
Container contentPane;

// constructor
public Guitest() {

    contentPane = getContentPane();
    contentPane.setBackground(Color.WHITE);

    setTitle("Test GUI");
    setSize(400,200);
    setLocation(400,400);

    contentPane.setLayout(new FlowLayout(FlowLayout.LEFT));

    text = new JLabel("Enter name of new customer");
    contentPane.add(text);

    inputLine = new JTextField();
    inputLine.setColumns(10);
    contentPane.add(inputLine);

    setDefaultCloseOperation( EXIT_ON_CLOSE );

}
}

И я также добавляю простой класс, который создает экземпляр окна и делает его видимым. Возможно, этот класс может быть классом логики?

 class Showgui {
// main
public static void main(String[] args) {

    Guitest mywindow;
    mywindow = new Guitest();
    mywindow.setVisible(true);
}
}

Вся помощь необходима! Спасибо!

Ответы [ 2 ]

3 голосов
/ 04 января 2012

Вы должны изучить слушателей событий для начала, а затем узнать о шаблоне MVC , показанном здесь .

2 голосов
/ 04 января 2012

Вы можете добавить ActionListener в JTextField, чтобы всякий раз, когда пользователь нажимает, вводит событие и запускается фрагмент кода.

Например:

inputLine.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                String input = inputLine.getText();
            }

});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...