java - 文本字段的开头总是出现一个空格字符
问题描述
我在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");
}
}
}
}
此代码尚未完成,因为我仍在尝试解决这个烦人的问题,但我找不到问题。一些帮助将不胜感激。
解决方案
从代码中,我可以看到你正在设置这样的东西
txtPieces1000.setText(" ");
txtAmount1000.setText(" ");
我认为这是导致问题的原因,请尝试像这样设置
txtPieces1000.setText("");
txtAmount1000.setText("");
推荐阅读
- ios - 使用 Cordova 10 的应用内 AJAX 无法在 iOS 中运行
- loopbackjs - 覆盖 Loopback3 中的 patchAttributes 方法
- java - 强制转换不适用于嵌套列表对象类型并返回空列表(列表
- >)
- angular - Angular 2+ 单元测试中的存根文件导入
- java - 如何将特定 URL(非本地)的外部 jar 添加到 maven 项目?
- sql-server - 为什么 sys.dm_fts_parser 在 SQL Server 2008 上不区分重音?
- html - 在 Hover 上使用更粗的字体(使用字体系列) - 文本移动
- angular - 取消 mat-slide-toggle 两次更改切换状态
- python - 使用 tkinter 搜索 csv 文件
- apache-kafka - kafka如何处理不同批次的订购?