2016-12-07 69 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 –