GUI类和Logic类之间的交互?

时间:2012-01-04 10:51:14

标签: java swing

在我的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 );

}
}

我还添加了一个简单的类,它创建了一个窗口实例并使其可见。也许这个类可能是Logic类?

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

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

所有帮助都是预先准备好的!谢谢!

2 个答案:

答案 0 :(得分:3)

您应该首先学习event listeners,然后了解MVC patternhere

答案 1 :(得分:2)

您可以向JTextField添加ActionListener,以便每当用户按下Enter键时触发一个事件并执行一段代码。

例如:

inputLine.addActionListener(new ActionListener() {

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

});