2012-01-04 65 views
2

在我的Java課程中,我必須創建一個與用戶交互的GUI類和處理交互的Logic類。既然我覺得這很複雜,很難理解,我正在尋找一些可以激勵我繼續的幫助。GUI類和邏輯類之間的相互作用?

到目前爲止,我剛剛使用了一個帶有Swich語句的基於文本的Menu類來處理使用Scanner的簡單輸入,然後處理所有get和set方法。但我想我不再需要這些了,而是可以創建一些Logic類來處理對象中的所有獲取和設置方法,具體取決於來自用戶的輸入。但是,從一開始,我該如何在窗口中創建一個簡單的菜單,並從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

您可以將一個ActionListener添加到JTextField,因此每當用戶按下Enter鍵時觸發事件並執行一段代碼。

例如:

inputLine.addActionListener(new ActionListener() { 

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

}); 
+0

謝謝!通過輸入,我可以將它傳遞給邏輯類中的方法? – 2012-01-04 17:52:45

+0

是的,你可以做到這一點。 – Katana 2012-01-04 17:55:15