01/10/2018, 09:15

setText cho 4 textField nhưng chỉ thực hiện được 2 textfield trong java swing

HI mấy pro ,
Code java swing của em , khi nhấn nút button thì em sẽ setText cho 4 textfield . Nhưng khi run thì không setText hoàn toàn 4 textfield
Mới tập tành swing thì yêu cầu của thầy , mong mấy a e chỉ giáo
đât là code của em

package huyle.thuchanhjava.lab4;

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Component;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.nio.ByteOrder;

import javax.swing.*;

public class Bai5 extends JFrame implements ActionListener {

	Button btnCompute = new Button("Compute Payment");
	TextField tfInterestRate = new TextField();
	TextField tfNumberofYears = new TextField();
	TextField tfLoanAmount = new TextField();
	TextField tfMonthlyPayment = new TextField();
	TextField tfTotalPayment = new TextField();

	public Bai5() {
		createFrame();
		btnCompute.addActionListener(this);

	}

	public void createFrame() {
		// TODO Auto-generated method stub
		setTitle("LoanCalculator");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		setSize(500, 500);
		// add panel content fo JFrame
		add(createMainJPanel());

		setLocationRelativeTo(null);
		setVisible(true);
	}

	private JPanel createMainJPanel() {
		JPanel mainjpanel = new JPanel(new BorderLayout(10, 10));
		mainjpanel.add(new Label("Enter loan amount , interest rate, and years "), BorderLayout.NORTH);
		mainjpanel.add(createJPanel1(), BorderLayout.CENTER);
		mainjpanel.add(createJPanel2(), BorderLayout.SOUTH);
		return mainjpanel;
	}

	private JPanel createJPanel2() {
		// TODO Auto-generated method stub
		JPanel panel2 = new JPanel();
		panel2.setLayout(new FlowLayout(FlowLayout.RIGHT));
		panel2.add(btnCompute);
		return panel2;
	}

	public JPanel createJPanel1() {
		// TODO Auto-generated method stub

		GridLayout gl = new GridLayout(5, 2, 1, 1);
		JPanel panel1 = new JPanel(gl);

		panel1.add(new Label("Annual Interest Rate"));
		panel1.add(tfInterestRate);
		panel1.add(new Label("Number of Years"));
		panel1.add(tfNumberofYears);
		panel1.add(new Label("Loan Amount"));
		panel1.add(tfLoanAmount);
		panel1.add(new Label("Monthly Payment"));
		panel1.add(tfMonthlyPayment);
		panel1.add(new Label("Total Payment"));
		panel1.add(tfTotalPayment);
		return panel1;
	}
	public static boolean isNumeric(String str)  
	{  
	  try  
	  {  
	    double d = Double.parseDouble(str);  
	  }  
	  catch(NumberFormatException nfe)  
	  {  
	    return false;  
	  }  
	  return true;  
	}
	public boolean checkTextfield()
	{
		if(isNumeric(tfInterestRate.getText()) && isNumeric(tfNumberofYears.getText()) && isNumeric(tfLoanAmount.getText()) && isNumeric(tfMonthlyPayment.getText()))	
		{
			return true;
		}
			
		return false;
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Bai5 fr = new Bai5();
		fr.setDefaultCloseOperation(EXIT_ON_CLOSE);
		fr.pack();
		fr.setVisible(true);
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		if (e.getSource() == btnCompute) {
			
//			if(checkTextfield())
//			{
//				JOptionPane.showMessageDialog(null, "Mời bạn nhập lại thông tin", "Thông báo", JOptionPane.CLOSED_OPTION);
//				tfInterestRate.setText(null);
//				tfNumberofYears.setText(null);
//				tfLoanAmount.setText(null);
//				tfMonthlyPayment.setText(null);
//				tfTotalPayment.setText(null);
//			}
			if(checkTextfield() == false )
			{
				tfLoanAmount.setText("");
				tfMonthlyPayment.setText("");
				tfInterestRate.setText(" ");
				tfNumberofYears.setText(" ");
				JOptionPane.showMessageDialog(null, "Mời bạn nhập lại thông tin", "Thông báo", JOptionPane.CLOSED_OPTION);
				
			}
			else {
			int money = Integer.parseInt(tfLoanAmount.getText() + tfMonthlyPayment.getText());
			tfTotalPayment.setText(String.valueOf(money)); 
			}
		}
	}

}
X viết 11:23 ngày 01/10/2018

Thế em biết em đang code bài gì không? Mục đích là để làm gì?

Lê Huy viết 11:18 ngày 01/10/2018

à em đang code tính toán tiền lãi hàng tháng , mà công thức tính tiền hàng tháng thầy chưa đưa nên em chưa tính tới
Nhưng em setText 4 textfield nhưng sao nó ko setText 1 lần cho 4 textfield nhĩ

X viết 11:26 ngày 01/10/2018

Nếu nhập cả chữ thì nó set trắng hết cả 4 mà em

Lê Huy viết 11:19 ngày 01/10/2018

không anh ơi , e Run , test nhiều trường hợp lỗi mà chẳng thấy set trắng hết cả 4 : (

Bài liên quan
0