• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 270
  • Last Modified:

How do I make a text field only to accept mathematical operators as first character of input.

How do I make the text field to accept mathematical operators (+, -, *, /) only at char(0). nowhere else. My code lets the program accept the mathematical operators everywhere. Please check my code. I am using netbeans
private void txtNumberActionPerformed(java.awt.event.ActionEvent evt) {
        // Action Listner handling code here:
           if(txtNumber.getText().charAt(0) == '+' ||
              txtNumber.getText().charAt(0) == '-' ||
              txtNumber.getText().charAt(0) == '*' ||
              txtNumber.getText().charAt(0) == '/')
         {
     dataDisplay.append(txtNumber.getText()+ '\n');
     txtNumber.setText(null);
        }
         else
         {
      JOptionPane.showMessageDialog(null,"Sorry, " + txtNumber.getText() +
              " is not a valid entry" + "\n" + "Examples of valid Entry are:"
              + "\n" + "+23.5  " + "-1  " + "/6  " + " *12");
            }
    }

Open in new window

0
chandanchoubey
Asked:
chandanchoubey
  • 2
1 Solution
 
basav_comCommented:
Check this:

Use like this:
            if(txtNumber.getText().indexOf("+")> 0 || txtNumber.getText().indexOf("-")> 0 || txtNumber.getText().indexOf("*")> 0 || txtNumber.getText().indexOf("/")> 0 ){
/**
 * @(#)AcceptChars.java Created on Apr 7, 2009
 *
 * Copyright (c) 2007-2008 Subex, Ltd.
 * All Rights Reserved.
 *
 * This software is the confidential and proprietary information of
 * Subex Ltd ("Confidential Information"). You shall not disclose
 * such Confidential Information and shall use it only in accordance
 * with the terms of the license agreement you entered into
 * with Subex Ltd.
 */
 
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
 
/**
 * @author basaveswar.kureti
 *
 */
public class AcceptChars extends Frame implements TextListener {
	TextField txtNumber;
	AcceptChars(){
		txtNumber = new TextField(20);
		setLayout(new FlowLayout());
		add(txtNumber);
		setSize(500,400);
		setVisible(true);
		txtNumber.addTextListener(this);
		
	}
	
	public void textValueChanged(TextEvent  evt) {
        // Action Listner handling code here:
		if(txtNumber.getText().indexOf("+")> 0 || txtNumber.getText().indexOf("-")> 0 || txtNumber.getText().indexOf("*")> 0 || txtNumber.getText().indexOf("/")> 0 ){
			
   	      JOptionPane.showMessageDialog(null,"Sorry, " + txtNumber.getText() +
	              " is not a valid entry" + "\n" + "Examples of valid Entry are:"
	              + "\n" + "+23.5  " + "-1  " + "/6  " + " *12");
   	      String txt = txtNumber.getText();
   	       txtNumber.setText(txt.substring(0,txt.length()-1));
           }
		
 
	}
	
	public static void main(String args[]){
		new AcceptChars();
	}
 
}

Open in new window

0
 
chandanchoubeyAuthor Commented:
Thanks basav_com. I appreciate your help. But if I input ++40 or --40. It accepts. I want only +40 or -40 to accept. If you can help me with this that will be great!
0
 
chandanchoubeyAuthor Commented:
Thanks basav_com. I appreciate your help. But if I input ++40 or --40. It accepts. I want only +40 or -40 to accept. If you can help me with this that will be great!
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Cloud Class® Course: C++ 11 Fundamentals

This course will introduce you to C++ 11 and teach you about syntax fundamentals.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now