首页 > 解决方案 > 文本字段的开头总是出现一个空格字符

问题描述

我在Java中还是相当新的,我在我的程序中遇到了这个问题,在文本字段的开头总是有一个空格字符(如“”),我想知道如何在开始时删除那个空格文本字段,因为只要有空间,我在文本字段中的输入就不起作用。我可以在输入输入之前将其删除,但这会效率低下。顺便说一句,我在 java 中使用了一个小程序,因为我的教授坚持教小程序。

import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
import javax.swing.JOptionPane; 

public class Final3 extends Applet implements ItemListener, ActionListener
{

    Choice ch = new Choice();
    CheckboxGroup grp = new CheckboxGroup();

    Label lblType = new Label ("Transaction Type: ");
    Checkbox rbDefault = new Checkbox("Default",grp,true);
    Checkbox rbDeposit = new Checkbox("Deposit",grp,false);
    Checkbox rbWithdraw = new Checkbox("Withdraw",grp,false);

    Label lblPrevious = new Label ("Previous Balance: ");
    TextField txtPrevious = new TextField(20);

    Label lblDenominations = new Label ("Denominations: ");
    Label lblPieces = new Label ("Number of Pieces: ");
    Label lblAmount = new Label ("Amount: ");

    Checkbox cb1000 = new Checkbox ("1000");
    TextField txtPieces1000 = new TextField(5);
    TextField txtAmount1000 = new TextField(5);

    Checkbox cb500 = new Checkbox ("500");
    TextField txtPieces500 = new TextField(5);
    TextField txtAmount500 = new TextField(5);

    Checkbox cb200 = new Checkbox ("200");
    TextField txtPieces200 = new TextField(5);
    TextField txtAmount200 = new TextField(5);

    Checkbox cb100 = new Checkbox ("100");
    TextField txtPieces100 = new TextField(5);
    TextField txtAmount100 = new TextField(5);

    Label lblDeposit = new Label("Total Deposit: ");
    TextField txtDeposit = new TextField(15);

    Label lblCurrent = new Label ("Current Balance: ");
    TextField txtCurrent = new TextField(20);

    Button btnCompute = new Button("Compute");

    Checkbox noLabel = new Checkbox(" ",false,grp);
    int current = 0, previous, deposit, p1k, p5h, p2h, p1h, withdraw;
    String withdrawAmount;

    public void init()
    {
        add(lblType);
        add(rbDefault);
        add(rbDeposit);
        add(rbWithdraw);
        add(lblPrevious);
        add(txtPrevious);
        add(lblDenominations);
        add(lblPieces);
        add(lblAmount);
        add(cb1000);
        add(txtPieces1000);
        add(txtAmount1000);
        add(cb500);
        add(txtPieces500);
        add(txtAmount500);
        add(cb200);
        add(txtPieces200);
        add(txtAmount200);
        add(cb100);
        add(txtPieces100);
        add(txtAmount100);
        add(lblDeposit);
        add(txtDeposit);
        add(lblCurrent);
        add(txtCurrent);
        add(btnCompute);

        //set editable
        //set Enabled
        lblPrevious.setEnabled(false);
        txtPrevious.setEnabled(false);
        lblDenominations.setEnabled(false);
        lblPieces.setEnabled(false);
        lblAmount.setEnabled(false);
        cb1000.setEnabled(false);
        txtPieces1000.setEnabled(false);
        txtAmount1000.setEnabled(false);
        cb500.setEnabled(false);
        txtPieces500.setEnabled(false);
        txtAmount500.setEnabled(false);
        cb200.setEnabled(false);
        txtPieces200.setEnabled(false);
        txtAmount200.setEnabled(false);
        cb100.setEnabled(false);
        txtPieces100.setEnabled(false);
        txtAmount100.setEnabled(false);
        lblDeposit.setEnabled(false);
        txtDeposit.setEnabled(false);
        lblCurrent.setEnabled(false);
        txtCurrent.setEnabled(false);
        btnCompute.setEnabled(false);
        rbDefault.setEnabled(false);
        //action/item listener
        rbDefault.addItemListener(this);
        rbDeposit.addItemListener(this);
        rbWithdraw.addItemListener(this);
        cb1000.addItemListener(this);
        cb500.addItemListener(this);
        cb200.addItemListener(this);
        cb100.addItemListener(this);
        btnCompute.addActionListener(this);
    }

    public void itemStateChanged(ItemEvent e)
    { 

        if(rbDefault.getState()){
        } 

        if(rbDeposit.getState()){
            lblPrevious.setEnabled(true);
            txtPrevious.setEnabled(true);
            lblDenominations.setEnabled(true);
            lblPieces.setEnabled(true);
            lblAmount.setEnabled(true);
            txtPrevious.setEnabled(true);
            btnCompute.setEnabled(true);
            cb1000.setEnabled(true);
            cb500.setEnabled(true);
            cb200.setEnabled(true);
            cb100.setEnabled(true); 
        }

        if(cb500.getState()){
            txtPieces500.setEnabled(true);
            txtAmount500.setEnabled(true);
        }
        else{
            txtPieces500.setEnabled(false);
            txtAmount500.setEnabled(false);
            txtPieces500.setText(" ");
            txtAmount500.setText(" ");
        }

        if(cb200.getState()){
            txtPieces200.setEnabled(true);
            txtAmount200.setEnabled(true);
        }
        else{
            txtPieces200.setEnabled(false);
            txtAmount200.setEnabled(false);
            txtPieces200.setText(" ");
            txtAmount200.setText(" ");
        } 

        if(cb100.getState()){
            txtPieces100.setEnabled(true);
            txtAmount100.setEnabled(true);
        }
        else{
            txtPieces100.setEnabled(false);
            txtAmount100.setEnabled(false);
            txtPieces100.setText(" ");
            txtAmount100.setText(" ");
        }

        if(cb1000.getState()){
            txtPieces1000.setEnabled(true);
            txtAmount1000.setEnabled(true);
        }
        else{
            txtPieces1000.setEnabled(false);
            txtAmount1000.setEnabled(false);
            txtPieces1000.setText(" ");
            txtAmount1000.setText(" ");
        }

        if(rbWithdraw.getState()){
            lblPrevious.setEnabled(true);
            txtPrevious.setEnabled(true);
            btnCompute.setEnabled(true);
            withdrawAmount = JOptionPane.showInputDialog(null, "Enter amount: ", "Withdraw", JOptionPane.QUESTION_MESSAGE);
            withdraw = Integer.parseInt(withdrawAmount);
        } 
    }

    public void actionPerformed(ActionEvent e)
    {

        if (e.getSource() == btnCompute)
        {
            if(rbDeposit.getState()){
                txtAmount1000.setText(String.valueOf(Integer.valueOf(txtPieces1000.getText())*1000));
                txtAmount500.setText(String.valueOf(Integer.valueOf(txtPieces500.getText())*500));
                txtAmount200.setText(String.valueOf(Integer.valueOf(txtPieces200.getText())*200));
                txtAmount100.setText(String.valueOf(Integer.valueOf(txtPieces100.getText())*100));
                txtDeposit.setText(String.valueOf(Integer.valueOf(txtAmount1000.getText())+Integer.valueOf(txtAmount500.getText())+Integer.valueOf(txtAmount200.getText())+Integer.valueOf(txtAmount100.getText())));
                txtCurrent.setText(String.valueOf(Integer.valueOf(txtPrevious.getText())+Integer.valueOf(txtDeposit.getText())));
            }
            if(rbWithdraw.getState()){
                txtCurrent.setText(String.valueOf(Integer.valueOf(txtPrevious.getText())-Integer.valueOf(txtDeposit.getText())));
            }
            
            else if(withdraw < Integer.parseInt(txtPrevious.getText())){
                JOptionPane.showMessageDialog(null,"Insufficient Balance");
            }
        }

    }
    }

此代码尚未完成,因为我仍在尝试解决这个烦人的问题,但我找不到问题。一些帮助将不胜感激。

标签: javaappletawt

解决方案


从代码中,我可以看到你正在设置这样的东西

txtPieces1000.setText(" ");
txtAmount1000.setText(" ");

我认为这是导致问题的原因,请尝试像这样设置

txtPieces1000.setText("");
txtAmount1000.setText("");

推荐阅读