2016-12-07 79 views
0

我正在學校的代碼中選擇一種類型的貸款,然後它將需要您欠的金額並告訴您需要多久才能還清貸款。我使用了一些基本的JTextField來允許用戶輸入,然後使用.getText()來檢索信息。但是,當我使用該字段時,它會在我的控制檯中返回nullnull。我一直在試圖解決這個問題,並且已經改變了很多代碼,而且我對編碼還很陌生,所以可能有點難以遵循。如果有人能幫我解釋爲什麼它返回空值,我會補充一點。返回空值的文本字段

代碼在這裏

import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 
import java.util.Scanner; 
public class Loan1 extends JFrame implements ActionListener 
{ 
String paymentTotal, total; 
double a; 
double b; 
double g; 
String Total; 
FlowLayout flowLayout = new FlowLayout(); 
private JButton bl = new JButton("Business Loan"); 
private JButton pl = new JButton("Personal Loan"); 
private JButton cl = new JButton("Create a Loan"); 
private JButton submit = new JButton("Submit"); 
TextField textField = new TextField(20); 


JLabel thing = new JLabel("How long were you looking to payoff the loan?"); 
JLabel thing2 = new JLabel("you will have to pay " + g + " $ a month"); 


    public Loan1(){ 
     setLayout(flowLayout); 
     add("Business Loan",bl); 
     add("Personal Loan",pl); 
     add("Create a Loan",cl); 
     bl.addActionListener(this); 
     pl.addActionListener(this); 
     cl.addActionListener(this); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    } 

    public void actionPerformed(ActionEvent e) 
    { 
     if (e.getSource() == bl || e.getSource() == pl 
|| e.getSource() == cl) 

      payment(); 
     if (e.getSource() == submit) { 
      Submit(); 
     } 
     repaint(); 
     //b = new Double(Total); 
     System.out.print(Total); 
     System.out.print(paymentTotal); 
     add(thing); 
     TextField textField = new TextField(20); 
     String text = textField.getText(); 
     add(textField); 
     remove(bl); 
     remove(cl); 
     remove(pl); 

     if(text.equals("1")){ 
      a = 1; 
      //g = paymentTotal/a *12 
      add(thing2); 
     } 
     if(text.equals("2")){ 
      a = 2; 
      //g = paymentTotal/a *12 
      add(thing2); 
     } 
     if(text.equals("3")){ 
      a = 3; 
      //g = paymentTotal/a *12 
      add(thing2); 
     } 
     if(text.equals("4")){ 
      a = 1; 
      //g = paymentTotal/a *12 
      add(thing2); 
     } 
     if(text.equals("5")){ 
      a = 1; 
      //g = paymentTotal/a *12 
      add(thing2); 
     } 
     } 
    public static void main(String[] args) 
    { 
     Loan1 JBL = new Loan1(); 
     JBL.setSize(250,250); 
     JBL.setVisible(true); 
    } 


    public void payment() { 
     JLabel thing1 = new JLabel("How much money 
    were you looking to get a loan for?"); 
     add(thing1); 
     add(textField); 
     add(submit); 
    } 
    public void Submit(){ 
     String Total = textField.getText(); 
     paymentTotal = Total; 
     System.out.print(Total); 
     remove(textField); 

    } 

    } 

回答

0

第一:在你的方法支付(),你已經忘了:

submit.addActionListener(this); 

,爲什麼你沒有指定各按鈕它自己的actionPerformed?

+0

它所做的只是改變它的利率(女巫我還沒有添加),它運行並詢問相同的問題,所以我打算用.getsource來改變它,因爲我將改變1個變量,並且謝謝對於幫助,現在它返回一個數字然後返回null,我假設女巫是因爲提交只在我們的第一個文本字段的作品。我會將它添加到第二部分,看看它做了什麼。 –

+0

@LukeHedrick okyy –