Getting the text from a JTextArea...

hi, I'm making a perfect calculator program and I'm trying to add a Note Pad function to it, I also want to hide that so the other interface can be used; I can get it hided and come again but I'm wondering how could I get the text from the JTextArea INCLUSIVE the enters that are made withing it, so:
theString = jTextArea1.getText();only gives me the text and no enters; suggestions?

I think I displayed it wrongTwo things to keep in mind...
Certain Swing components will just ignore newlines, so you have to be careful where/how you're displaying your multiline text strings. Some components will display it all as one line, some will only display the top line, some will even show \n instead of doing the newline. It all just depends.
And JTextArea does support word wrapping, so just because it looks like there's a newline, there may not be one.

Similar Messages

  • How to get the text present in JTextArea

    i am writing application for some system to be computerised and i am not getting how to get the text present in text area and set it into database...can anybody suggest me solution??

    You must have named the TextArea like
    JTextArea textArea;so, use the getText() method like
    String strTextAreaContents = textArea.getText();You can then use JDBC to connect to the database that you want and save your contents that is now in strTextAreaContents.
    -- Srikanth

  • How to get the text from me52n/me52?

    I used rp-read-infotype in getting the text in HR. Please guide me how to get it in ME52. Thanks!

    HI
    GOOD
    CAN YOU GIVE SOME MORE BRIEF ABOUT YOUR REQUIREMENT.ANYWAY YOU CAN GO THROUGH THIS REPORT HOPE CAN HELP YOU SOMETHING
    REPORT Z_LEAVES_AND_COMMENTS  line-size 255 line-count 65 no
    standard page heading .
    =====================================================
    DATA DECLARATIONS
    =====================================================
    infotypes : 0002 ,
                2001 .
    TABLES : t554t .
    DATA : BEGIN OF ITAB_LEAVES OCCURS 100 ,
           PERNR LIKE P2001-PERNR ,
           NACHN LIKE P0002-NACHN ,
           VORNA LIKE P0002-VORNA ,
           SUBTY LIKE P2001-SUBTY ,
           ATEXT LIKE T554T-ATEXT ,
           YEAR(4) TYPE C ,
           SEQNR LIKE P2001-SEQNR ,
           BEGDA LIKE P2001-BEGDA ,
           ENDDA LIKE P2001-ENDDA ,
           KALTG LIKE P2001-KALTG .
    DATA : END OF ITAB_LEAVES .
    DATA : S_DATE_LOW LIKE SY-DATUM .
    =====================================================
    SELECTION SCREEN - DEFAULT
    =====================================================
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME .
    parameters : P_PERNR LIKE Pa0002-PERNR 
                 MATCHCODE OBJECT PREM  OBLIGATORY.
    PARAMETERS : S_DATE LIKE SY-DATUM DEFAULT SY-DATUM .
    SELECTION-SCREEN END OF BLOCK B1 .
    =====================================================
    TOP-OF-PAGE
    =====================================================
    TOP-OF-PAGE .
      WRITE : 'Report of Leaves - Infotype 2001'  COLOR COL_HEADING .
      ULINE .
      WRITE : /
         'CODE' COLOR COL_HEADING ,
         'DESCRIPTION OF LEAVE     '  COLOR COL_HEADING ,
         'YEAR'  COLOR COL_HEADING ,
         'STARTING  '  COLOR COL_HEADING ,
         'ENDING    '  COLOR COL_HEADING  ,
         'DURATION '  COLOR COL_HEADING .
      ULINE .
    ======================================================
    START OF SELECTION
    ======================================================
    START-OF-SELECTION .
      S_DATE_LOW = S_DATE - 365 .
      CLEAR : P2001 , P2001[] .
      RP-READ-INFOTYPE P_PERNR 2001 P2001 S_DATE_LOW S_DATE .
      IF SY-SUBRC = 0 .
        LOOP AT P2001 .
          CLEAR : ITAB_LEAVES .
          ITAB_LEAVES-PERNR = P2001-PERNR .
          ITAB_LEAVES-SUBTY = P2001-SUBTY .
          ITAB_LEAVES-SEQNR = P2001-SEQNR .
          clear t554t .
          select single * from t554t
          where MOABW = '99'
          and   awart = P2001-SUBTY
          and   sprsl = SY-LANGU .
          if sy-subrc eq 0 .
            ITAB_LEAVES-ATEXT = T554T-ATEXT .
          endif .
          ITAB_LEAVES-BEGDA = P2001-BEGDA .
          ITAB_LEAVES-ENDDA = P2001-ENDDA .
          ITAB_LEAVES-YEAR = P2001-BEGDA(4) .
          ITAB_LEAVES-KALTG = P2001-KALTG .
          CLEAR P0002 .
          REFRESH P0002 .
          RP-READ-INFOTYPE P_PERNR 0002
          P0002 '18000101' '99991231'.
          IF SY-SUBRC = 0 .
            ITAB_LEAVES-NACHN  = P0002-NACHN .
            ITAB_LEAVES-VORNA  = P0002-VORNA .
          ENDIF .
          APPEND  ITAB_LEAVES .
        ENDLOOP .
      ENDIF .
    ======================================================
    END OF SELECTION
    ======================================================
    END-OF-SELECTION .
      LOOP AT ITAB_LEAVES .
        WRITE : /
             ITAB_LEAVES-SUBTY ,
             ITAB_LEAVES-ATEXT ,
             ITAB_LEAVES-YEAR  ,
             ITAB_LEAVES-BEGDA ,
             ITAB_LEAVES-ENDDA ,
             ITAB_LEAVES-KALTG .
        PERFORM GET_NOTES_OF_AN_INFOTYPE
        USING '2001'
               ITAB_LEAVES-SUBTY
               ITAB_LEAVES-PERNR
               ITAB_LEAVES-BEGDA
               ITAB_LEAVES-ENDDA
               ITAB_LEAVES-SEQNR .
      ENDLOOP .
      uline .
      write : ' *** End of Report *** '  COLOR COL_HEADING .
      uline .
    *======================================================
    =========> FORM GET_NOTES_OF_AN_INFOTYPE <===========
    *======================================================
    FORM GET_NOTES_OF_AN_INFOTYPE
    USING MINFTY MSUBTY MPERNR MBEGDA MENDDA MSEQNR .
      DATA: TX-KEY LIKE PSKEY.
      DATA: BEGIN OF TEXT-VERSION,
             NUMMER TYPE X VALUE '02',
            END OF TEXT-VERSION.
      DATA: BEGIN OF PTEXT OCCURS 200.
      DATA:  LINE(78).
      DATA: END OF PTEXT.
      data : is_first type i .
      DATA : LINES_OF_NOTES TYPE I .
    Preparing Key for Reading Texts of
    Infotype
      CLEAR TX-KEY .
      CLEAR:   PTEXT             .
      REFRESH: PTEXT             .
      TX-KEY-PERNR = MPERNR .
      TX-KEY-INFTY = MINFTY .
      TX-KEY-SUBTY = Msubty .
      TX-KEY-ENDDA = MENDDA .
      TX-KEY-BEGDA = MBEGDA .
      TX-KEY-SEQNR = MSEQNR .
    READING CLUSTER TX - (Texts)
      IMPORT TEXT-VERSION
             PTEXT
      FROM DATABASE PCL1(TX)
      ID TX-KEY
      USING PCL1_EXP_IMP(SAPFP50P)  .
      IF SY-SUBRC NE 0        .
        CLEAR:   TEXT-VERSION      .
        CLEAR:   PTEXT             .
        REFRESH: PTEXT             .
        SY-SUBRC = 4               .
      ENDIF          .
    Writing texts retrieved
      DESCRIBE TABLE PTEXT LINES LINES_OF_NOTES .
      IF  LINES_OF_NOTES GT 0 .
        is_first = 1 .
        LOOP AT PTEXT .
          if is_first = 1 .
            WRITE : /  'Comments' , ptext-line  .
            is_first = 0 .
          else .
            WRITE : /  '        ' , ptext-line  .
          endif .
        ENDLOOP .
      ENDIF .
    ENDFORM.
    THANKS
    MRUTYUN

  • Getting the text from a text area

    I have a application and I wish to take in text typed in from the user into a textArea and then send it into a method however I need to be able to send this information to a static method which accesses a HashTable and then searches for the text inputted by the user word by word. However the getText() wont allow me to access it in a static method and Im not sure of a way around this.
    I know I propably haven't explained this very well but any help you can provide is appreciated

    OK im going to try and explain a little better.
    The main method is currently constructing a HashTable which is then accessed by other methods within the program. Due to this any methods using the HashTable as I understand it must be static. However some of the methods also require input from the user which is entered into a text box in the application. To access this information the method can't be static.
    However when i have a method such as this
    private static void sendMessage(HashTable theTable, String readMessage)
    now as you can see I need to be able to pass it a string and the table.
    Problem: How the hell do I do this its driving me nuts.

  • Setting a label with the text from cmd

    I know that label.setText("sdf"); usually prints out what ever we set in the label. But what i need help in is actually to get the text from the command prompt and print it unto the label. I'm doing a school project that requires users to click a GUI component menu "start server". This actually calls a batch file that connects the pc and a mobile phone with bluetooth. So, actually when the server(pc) is connecting, it prints out text like : "connecting..." . I want to disable the command prompt and actually print all those text unto a label on the GUI. Please help me somebody.

    these are three classes that object_au suggested might help me to print things from a cmd to a label:-
    ------------------------AutoReader.java---------------------------
    package au.com.objects.io;
    import java.io.*;
    import java.util.*;
    * Reads a text stream line by line notifying registered listeners of it's progress.
    public class AutoReader implements Runnable
         private BufferedReader In = null;
         private ArrayList Listeners = new ArrayList();
         * Constructor
         * @param in stream to read, line by line
         public AutoReader(InputStream in)
              this(new InputStreamReader(in));
         * Constructor
         * @param in reader to read, line by line
         public AutoReader(Reader in)
              In = new BufferedReader(in);
         * Adds listener interested in progress of reading
         * @param listener listener to add
         public void addListener(Listener listener)
              Listeners.add(listener);
         * Removes listener interested in progress of reading
         * @param listener listener to remove
         public void removeListener(Listener listener)
              Listeners.remove(listener);
         * Handles reading from stream until eof, notify registered listeners of progress.
         public void run()
              try
                   String line = null;
                   while (null!=(line = In.readLine()))
                        fireLineRead(line);
              catch (IOException ex)
                   fireError(ex);
              finally
                   fireEOF();
         * Interface listeners must implement
         public interface Listener
              * Invoked after each new line is read from stream
              * @param reader where line was read from
              * @param line line read
              public void lineRead(AutoReader reader, String line);
              * Invoked if an I/O error occurs during reading
              * @param reader where error occurred
              * @param ex exception that was thrown
              public void error(AutoReader reader, IOException ex);
              * Invoked after EOF is reached
              * @param reader where EOF has occurred
              public void eof(AutoReader reader);
         * Notifies registered listeners that a line has been read
         private void fireLineRead(String line)
              Iterator i = Listeners.iterator();
              while (i.hasNext())
                   ((Listener)i.next()).lineRead(this, line);
         * Notifies registered listeners that an error occurred during reading
         private void fireError(IOException ex)
              Iterator i = Listeners.iterator();
              while (i.hasNext())
                   ((Listener)i.next()).error(this, ex);
         * Notifies registered listeners that EOF has been reached
         private void fireEOF()
              Iterator i = Listeners.iterator();
              while (i.hasNext())
                   ((Listener)i.next()).eof(this);
    ------------------------AutoReaderDocument .java---------------------------
    package au.com.objects.swing.text;
    import javax.swing.text.*;
    import java.io.*;
    import au.com.objects.io.*;
    import java.awt.*;
    * Document implementation that automatically reads it's contents from multiple readers.
    * Each Reader is handled by a seperate thread.
    public class AutoReaderDocument extends PlainDocument
         implements AutoReader.Listener
         * Default Constructor, creates empty document
         public AutoReaderDocument()
         * Adds a new source Reader to read test from. The reading is handled
         * in a seperate dedicated thread.
         public void addReader(Reader in)
              AutoReader auto = new AutoReader(in);
              auto.addListener(this);
              new Thread(auto).start();
         * Invoked when a line is read from one of threads.
         * Appends line of text to document.
         * @param reader where line was read from
         * @param line line read
         public void lineRead(AutoReader in, final String line)
              EventQueue.invokeLater(new Runnable() { public void run()
                   try
                        insertString(getLength(), line+'\n', null);
                   catch (BadLocationException ex)
                        ex.printStackTrace();
         public void error(AutoReader in, IOException ex)
              ex.printStackTrace();
         public void eof(AutoReader in)
    ------------------------SwingExecExample.java---------------------------
    package au.com.objects.examples;
    import au.com.objects.swing.text.*;
    import java.util.*;
    import javax.swing.*;
    import java.io.*;
    * Example demonstrating reading output from Process.exec() into a JTextArea.
    public class SwingExecExample
         public static void main(String[] args)
              AutoReaderDocument output = new AutoReaderDocument();
              JFrame f = new JFrame("exec");
              f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              f.getContentPane().add(new JScrollPane(new JTextArea(output)));
              f.setSize(400, 200);
              f.show();
              try
                   Process p = Runtime.getRuntime().exec(args);
                   output.addReader(new InputStreamReader(p.getInputStream()));
                   output.addReader(new InputStreamReader(p.getErrorStream()));
              catch (IOException ex)
                   ex.printStackTrace();

  • How to store the text Inputted in JTextArea

    I have created a JtextArea using Applets. I wanted to know how we get the text from that area and store it in a datastructure?..please help me

    String text = textarea.getText();

  • How to get the text in a label which is imbeded in a JTextPane

    I have created a JTextPane that has 5 JLabels inserted in the text. I have attempted to get the text with the following code snippet.
    Component[] lbl = new Componennt[DisplayLetterPane.getComponentCount()];
    //         JTextPane DisplayLetterPane; is defined previously
             lbl = DisplayLetterPane.getComponents();
             int componentIndex = 0;
             String lblText = new String(((JLabel)lbl[componentIndex]).getText());I have run a dump of the sytledDocument of the JTextPane and I see the JLabel listed as a component.
    When this snippet is executed I get the following:
    Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: javax.swing.text.ComponentView$Invalidator
    When I check the character where the component for the JLabel is located in the styled document it does not find an instanceof JLabel.
    How can I get the text from the labels.
    Thank you in advance!

    JTextPane jtp = new JTextPane();
              for (int i = 0; i <5; i++) {
                   jtp.add(new JLabel("labelText"+i));
              Component[] lbl = new Component[jtp.getComponentCount()];
    //      JTextPane DisplayLetterPane; is defined previously
          lbl = jtp.getComponents();
          int componentIndex = 0;
          for (int i = 0; i < lbl.length; i++) {
               System.out.println(((JLabel)lbl).getText());
    When I do like the above, it just works fine. Can u share a little bit more of your code?                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • Is there a way to get the text written into a text object in an AWTFrame

    I am trying to get the text written into the text box in the AWTFrame.
    I have tried the following:
    <pre> AccessibleTextInfo acinfo;
         AccessibleContextInfo actinfo;
         AccessibleTextItemsInfo acttinfo;
         actinfo = getContextInfoFromContext(ac);
         GetAccessibleTextInfo(vmID,ac,&acinfo,actinfo.x,actinfo.y);
         printf("char count =%i\n",acinfo.charCount);
         printf("OK so far\n");
         GetAccessibleTextRange(vmID,ac,0,MAX_STRING_SIZE,sData,MAX_STRING_SIZE);
         printf("text =%s\n",sData);</pre>
    The charCount is correct but the string returned is always null.
    Is this the right way to do this. If not then is there a correct way to get the text from a text box.

    881530 wrote:
    Looks like one of the accessbridge files was corrupted. I re-installed access bridge and it worked fineGlad to hear your problem is resolved. Definitely odd though, I'd expect things to crash and burn in stead of changing behavior.

  • How can I get the "text" field from the actionEvent.getSource() ?

    I have some sample code:
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.util.ArrayList;
    public class JFrameTester{
         public static void main( String[] args ) {
              JFrame f = new JFrame("JFrame");
              f.setSize( 500, 500 );
              ArrayList < JButton > buttonsArr = new ArrayList < JButton > ();
              buttonsArr.add( new JButton( "first" ) );
              buttonsArr.add( new JButton( "second" ) );
              buttonsArr.add( new JButton( "third" ) );
              MyListener myListener = new MyListener();
              ( (JButton) buttonsArr.get( 0 ) ).addActionListener( myListener );
              ( (JButton) buttonsArr.get( 1 ) ).addActionListener( myListener );
              ( (JButton) buttonsArr.get( 2 ) ).addActionListener( myListener );
              JPanel panel = new JPanel();
              panel.add( buttonsArr.get( 0 ) );
              panel.add( buttonsArr.get( 1 ) );
              panel.add( buttonsArr.get( 2 ) );
              f.getContentPane().add( BorderLayout.CENTER, panel );
              f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
              f.setVisible( true );
         public static class MyListener  implements ActionListener{
              public MyListener() {}
              public void actionPerformed( ActionEvent e ) {
                   System.out.println( "hi!! " + e.getSource() );
                   // I need to know a title of the button (which was clicked)...
    }The output of the code is something like this:
    hi! javax.swing.JButton[,140,5,60x25,alignmentX=0.0,alignmentY=0.5,
    border=javax.swing.plaf.BorderUIResource$CompoundBorderUIResource@1ebcda2d,
    flags=296,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,
    disabledSelectedIcon=,margin=javax.swing.plaf.InsetsUIResource[top=2,left=14,bottom=2,
    right=14],paintBorder=true,paintFocus=true,pressedIcon=,rolloverEnabled=true,
    rolloverIcon=,rolloverSelectedIcon=,selectedIcon=,text=first,defaultCapable=true]
    I need this: "first" (from this part: "text=first" of the output above).
    Does anyone know how can I get the "text" field from the e.getSource() ?

    System.out.println( "hi!! " + ( (JButton) e.getSource() ).getText() );I think the problem is solved..If your need is to know the text of the button, yes.
    In a real-world application, no.
    In a RW application, a typical need is merely to know the "logical role" of the button (i.e., the button that validates the form, regardless of whether its text is "OK" or "Save", "Go",...). Text tends to vary much more than the structure of the UI over time.
    In this case you can get the source's name (+getName()+), which will be the name that you've set to the button at UI construction time. Or you can compare the source for equality with either button ( +if evt.getSource()==okButton) {...}+ ).
    All in all, I think the best solution is: don't use the same ActionListener for more than one action (+i.e.+ don't add the same ActionListener to all your buttons, which leads to a big if-then-else series in your actionPerformed() ).
    Eventually, if you're listening to a single button's actions, whose text change over time (e.g. "pause"/"resume" in a VCR bar), I still think it's a bad idea to rely on the text of the button - instead, this text corresponds to a logical state (resp. playing/paused), it is more maintainable to base your logic on the state - which is more resilient to the evolutions of the UI (e.g. if you happen to use 2 toggle buttons instead of one single play/pause button).

  • HT1694 The text has disappeared from my emails in my inbox. What can I do to get the text back?

    The text has disappeared from my emails in my inbox. What can I do to get the text back?

    Try closing the Mail app via the taskbar and see if the email text shows when you re-open the app : from the home screen (i.e. not with the Mail app 'open' on-screen) double-click the home button to bring up the taskbar, then press and hold any of the apps on the taskbar for a couple of seconds or so until they start shaking, then press the '-' in the top left of the Mail app to close it, and touch any part of the screen above the taskbar so as to stop the shaking and close the taskbar.
    If that doesn't fix it they try a reset : press and hold both the sleep and home buttons for about 10 to 15 seconds (ignore the red slider), after which the Apple logo should appear - you won't lose any content, it's the iPad equivalent of a reboot.

  • My daughter recently broke her iphone 4.  We had a spare so we exchanged SIM card.  Now that we are linked in the cloud, I am getting all of her text messages and when I text her i get a text from my  number.  What should i try next?

    My daughter recently broke her iphone 4.  We had a spare so we exchanged SIM card.  Now that we are linked in the cloud, I am getting all of her text messages and when I text her i get a text from my  number.  What should i try next?

    stop using the same Apple ID for iMessage on both phones

  • Getting the text of a Label from an inputField

    Hello everyone,
    In my application, I have an inputField and a Label.
    The labelFor property of the Label directs to the inputField.
    How can I get the text of the label from the inputField ?
    Any suggestions ?
    Thanks.
    Ruthie.

    Hi Anilkumar,rahul,Valery.
    I didn't explain it clear enough.
    In my application I use the method reportContextAttributeMessage as follows:
    private void checkMandatory(String fieldName, String fieldText){
    IWDMessageManager messageMgr = wdControllerAPI.getComponent().getMessageManager();
    IWDAttributeInfo attributeInfo = wdContext.getNodeInfo().getAttribute(fieldName);
    String value = wdContext.currentContextElement().getAttributeAsText(fieldName);
    if (value.length()==0){          
                   messageMgr.reportContextAttributeMessage(wdContext.currentContextElement(),
                   attributeInfo,                        IMessageOpenUserApp.MISSING_INPUT,
                   new Object[] { fieldText },
                   true);     
    So,this method executes validity check to an input field
    ("fieldName").
    In the layout I have an inputField and a Label.
    The property labelFor of the Label is set to the inputField.
    The parameter "fieldText" should be the text of the label.
    Is there a way - that when knowing only the context attribute of the inputField - I can get the text of the Label ? what is the meaning of the labelFor property ?
    Thanks.
    Ruthie.

  • I updated my 4S iphone and now I am getting all the texts from another iPhone on my plan.  How do I stop this?

    I updated my 4S iPhone and now I am getting all the texts from another iPhone on my plan.  What do I need to do?

    I'm not completely clear on the GSM / LTE network frequencies in US vs Argentina, but I do know that cross-compatibility can be an issue when buying from one country and using in another. Apple products in particular have this problem. What this sounds like to me is that the phone is not compatible with Argentinian networks; or your friend had an AT&T phone and jail-broke it. This is against the end user licensing agreement, and when the phone is next updated is likely to jam the phone.
    Sorry but you lost your money.
    Wasted*

  • How do I get old texts from the Cloud

    How do I get old text from the Cloud?   Issues with my phone forced the Verizon Tech to wipe my phone and start over.  He said the Cloud would hold everything and I could retrieve it later.   I can't find any of the saved texts that I had.   Help please.

    Had you previously backed up your texts to the cloud? Yes, you can save things in the cloud, but you must first set it up to do so.

  • NullPointerException - Cannot get the value from variable f_cashGiven

    In SubCheckout.java (a POS), what I want is when Payment button (f_cashPayment) is pressed, the action "Cash" is performed, get the value from Cash Given (f_cashGiven), do the subtraction and post the value as Cash Return (f_cashReturn). The code is filled in actionPerformed. But I cannot get the value by using f_cashGiven.getValue() from VNumber class. It returns NULL. This should be quite straight forward, but I do not know what is wrong. Please help!
    Enclosed please find the source code of SubCheckout.java and VNumber.java
    This is the code of SubCheckout.java :
    * The contents of this file are subject to the   Compiere License  Version 1.1
    * ("License"); You may not use this file except in compliance with the License
    * You may obtain a copy of the License at http://www.compiere.org/license.html
    * Software distributed under the License is distributed on an  "AS IS"  basis,
    * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
    * the specific language governing rights and limitations under the License.
    * The Original Code is Compiere ERP & CRM Smart Business Solution. The Initial
    * Developer of the Original Code is Jorg Janke. Portions created by Jorg Janke
    * are Copyright (C) 1999-2005 Jorg Janke.
    * All parts are Copyright (C) 1999-2005 ComPiere, Inc.  All Rights Reserved.
    * Contributor(s): ______________________________________.
    package org.compiere.pos;
    import java.awt.*;
    import java.awt.event.*;
    import java.math.BigDecimal;
    import javax.swing.border.*;
    import org.compiere.grid.ed.*;
    import org.compiere.swing.*;
    import org.compiere.util.*;
    *     POS Checkout Sub Panel
    *  @author Jorg Janke
    *  @version $Id: SubCheckout.java,v 1.3 2005/03/11 20:28:22 jjanke Exp $
    public class SubCheckout extends PosSubPanel implements ActionListener
          *      Constructor
          *     @param posPanel POS Panel
         public SubCheckout (PosPanel posPanel)
              super (posPanel);
         }     //     PosSubCheckout
         private CButton f_register = null;
         private CButton f_summary = null;
         private CButton f_process = null;
         private CButton f_print = null;
         private CLabel f_lcreditCardNumber = null;
         private CTextField f_creditCardNumber = null;
         private CLabel f_lcreditCardExp = null;
         private CTextField f_creditCardExp = null;
         private CLabel f_lcreditCardVV = null;
         private CTextField f_creditCardVV = null;
         private CButton f_cashPayment = null;
         private CLabel f_lcashGiven = null;
         private VNumber f_cashGiven = null;
         private CLabel f_lcashReturn = null;
         private VNumber f_cashReturn = null;
         private CButton f_creditPayment = null;
         /**     Logger               */
         private static CLogger log = CLogger.getCLogger(SubCheckout.class);
          *      Initialize
         public void init()
              //     Title
              TitledBorder border = new TitledBorder(Msg.getMsg(Env.getCtx(), "Checkout"));
              setBorder(border);
              //     Content
              setLayout(new GridBagLayout());
              GridBagConstraints gbc = new GridBagConstraints();
              gbc.insets = INSETS2;
              //     --     0
              gbc.gridx = 0;
              f_register = createButtonAction("Register", null);
              gbc.gridy = 0;
              add (f_register, gbc);
              f_summary = createButtonAction("Summary", null);
              gbc.gridy = 1;
              add (f_summary, gbc);
              f_process = createButtonAction("Process", null);
              gbc.gridy = 2;
              add (f_process, gbc);
              f_print = createButtonAction("Print", null);
              gbc.gridy = 3;
              add (f_print, gbc);
              //     --     1 -- Cash
              gbc.gridx = 1;
              gbc.gridheight = 2;
              gbc.fill = GridBagConstraints.BOTH;
              gbc.weightx = .1;
              CPanel cash = new CPanel(new GridBagLayout());
              cash.setBorder(new TitledBorder(Msg.getMsg(Env.getCtx(), "Cash")));
              gbc.gridy = 0;
              add (cash, gbc);
              GridBagConstraints gbc0 = new GridBagConstraints();
              gbc0.insets = INSETS2;
              gbc0.anchor = GridBagConstraints.WEST;
              f_lcashGiven = new CLabel(Msg.getMsg(Env.getCtx(),"CashGiven"));
              cash.add (f_lcashGiven, gbc0);
              f_cashGiven = new VNumber("CashGiven", false, false, true, DisplayType.Amount,
                   Msg.translate(Env.getCtx(), "CashGiven"));
              f_cashGiven.addActionListener(this);
              f_cashGiven.setColumns(10, 25);
              cash.add (f_cashGiven, gbc0);
              f_cashGiven.setValue(Env.ZERO);
              f_lcashReturn = new CLabel(Msg.getMsg(Env.getCtx(),"CashReturn"));
              cash.add (f_lcashReturn, gbc0);
              f_cashReturn = new VNumber("CashReturn", false, true, false, DisplayType.Amount,
                   "CashReturn");
              f_cashReturn.setColumns(10, 25);
              cash.add (f_cashReturn, gbc0);
              f_cashReturn.setValue(Env.ZERO);
              f_cashPayment = createButtonAction("Payment", null);
              f_cashPayment.setActionCommand("Cash");
              gbc0.anchor = GridBagConstraints.EAST;
              gbc0.weightx = 0.1;
              cash.add (f_cashPayment, gbc0);
              //     --     1 -- Creditcard
              CPanel creditcard = new CPanel(new GridBagLayout());
              creditcard.setBorder(new TitledBorder(Msg.translate(Env.getCtx(), "CreditCardType")));
              gbc.gridy = 2;
              add (creditcard, gbc);
              GridBagConstraints gbc1 = new GridBagConstraints();
              gbc1.insets = INSETS2;
              gbc1.anchor = GridBagConstraints.WEST;
              gbc1.gridx = 0;
              gbc1.gridy = 0;
              f_lcreditCardNumber = new CLabel(Msg.translate(Env.getCtx(), "CreditCardNumber"));
              creditcard.add (f_lcreditCardNumber, gbc1);
              gbc1.gridy = 1;
              f_creditCardNumber = new CTextField(18);
              creditcard.add (f_creditCardNumber, gbc1);
              gbc1.gridx = 1;
              gbc1.gridy = 0;
              f_lcreditCardExp = new CLabel(Msg.translate(Env.getCtx(),"CreditCardExp"));
              creditcard.add (f_lcreditCardExp, gbc1);
              gbc1.gridy = 1;
              f_creditCardExp = new CTextField(5);
              creditcard.add (f_creditCardExp, gbc1);
              gbc1.gridx = 2;
              gbc1.gridy = 0;
              f_lcreditCardVV = new CLabel(Msg.translate(Env.getCtx(), "CreditCardVV"));
              creditcard.add (f_lcreditCardVV, gbc1);
              gbc1.gridy = 1;
              f_creditCardVV = new CTextField(5);
              creditcard.add (f_creditCardVV, gbc1);
              gbc1.gridx = 3;
              gbc1.gridy = 0;
              gbc1.gridheight = 2;
              f_creditPayment = createButtonAction("Payment", null);
              f_creditPayment.setActionCommand("CreditCard");
              gbc1.anchor = GridBagConstraints.EAST;
              gbc1.weightx = 0.1;
              creditcard.add (f_creditPayment, gbc1);
         }     //     init
          *      Get Panel Position
         public GridBagConstraints getGridBagConstraints()
              GridBagConstraints gbc = super.getGridBagConstraints();
              gbc.gridx = 0;
              gbc.gridy = 3;
              return gbc;
         }     //     getGridBagConstraints
          *      Dispose - Free Resources
         public void dispose()
              super.dispose();
         }     //     dispose
          *      Action Listener
          *     @param e event
         public void actionPerformed (ActionEvent e)
              String action = e.getActionCommand();
              if (action == null || action.length() == 0)
                   return;
              log.info( "PosSubCheckout - actionPerformed: " + action);
              if (e.getSource() == f_cashGiven) {
                   f_cashGiven.setValue(f_cashGiven.getValue());
                   System.out.println("f_cashGiven"+f_cashGiven.getDisplay());
              //     Register
              //     Summary
              //     Print
              if (action.equals("Cash")) {
                   BigDecimal CashGiven, GrandTotal, CashReturn;
                   System.out.println("Cash given is "+f_cashGiven.getDisplay());
                   CashGiven = (BigDecimal)f_cashGiven.getValue();
                   GrandTotal = (BigDecimal)p_posPanel.f_curLine.getOrder().getGrandTotal();
                   CashReturn = CashGiven.subtract(GrandTotal);
                   f_cashReturn.setValue(CashReturn);
              //     Cash (Payment)
              //     CreditCard (Payment)
         }     //     actionPerformed
    }     //     PosSubCheckoutThis is the code of VNumber.java :
    * The contents of this file are subject to the   Compiere License  Version 1.1
    * ("License"); You may not use this file except in compliance with the License
    * You may obtain a copy of the License at http://www.compiere.org/license.html
    * Software distributed under the License is distributed on an  "AS IS"  basis,
    * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
    * the specific language governing rights and limitations under the License.
    * The Original Code is Compiere ERP & CRM Smart Business Solution. The Initial
    * Developer of the Original Code is Jorg Janke. Portions created by Jorg Janke
    * are Copyright (C) 1999-2005 Jorg Janke.
    * All parts are Copyright (C) 1999-2005 ComPiere, Inc.  All Rights Reserved.
    * Contributor(s): ______________________________________.
    package org.compiere.grid.ed;
    import java.awt.*;
    import java.awt.event.*;
    import java.beans.*;
    import java.math.*;
    import java.text.*;
    import java.util.logging.*;
    import javax.swing.*;
    import javax.swing.text.*;
    import org.compiere.apps.*;
    import org.compiere.model.*;
    import org.compiere.swing.*;
    import org.compiere.util.*;
    *     Number Control
    *      @author      Jorg Janke
    *      @version      $Id: VNumber.java,v 1.41 2005/09/03 01:57:16 jjanke Exp $
    public final class VNumber extends JComponent
         implements VEditor, ActionListener, KeyListener, FocusListener
         /**     Number of Columns (12)          */
         public final static int SIZE = 12;
          *  IDE Bean Constructor
         public VNumber()
              this("Number", false, false, true, DisplayType.Number, "Number");
         }   //  VNumber
          *     Create right aligned Number field.
          *     no popup, if WindowNo == 0 (for IDs)
          *  @param columnName column name
          *  @param mandatory mandatory
          *  @param isReadOnly read only
          *  @param isUpdateable updateable
          *  @param displayType display type
          *  @param title title
         public VNumber(String columnName, boolean mandatory, boolean isReadOnly, boolean isUpdateable,
              int displayType, String title)
              super();
              super.setName(columnName);
              m_columnName = columnName;
              m_title = title;
              setDisplayType(displayType);
              LookAndFeel.installBorder(this, "TextField.border");
              this.setLayout(new BorderLayout());
    //          this.setPreferredSize(m_text.getPreferredSize());          //     causes r/o to be the same length
    //          int height = m_text.getPreferredSize().height;
    //          setMinimumSize(new Dimension (30,height));
              //     ***     Text     ***
              m_text.setBorder(null);
              m_text.setHorizontalAlignment(JTextField.TRAILING);
              m_text.addKeyListener(this);
              m_text.addFocusListener(this);
              //     Background
              setMandatory(mandatory);
              this.add(m_text, BorderLayout.CENTER);
              //     ***     Button     ***
              m_button.setIcon(Env.getImageIcon("Calculator10.gif"));
              m_button.setMargin(new Insets(0, 0, 0, 0));
              m_button.setFocusable(false);
              m_button.addActionListener(this);
              this.add (m_button, BorderLayout.EAST);
              //     Prefereed Size
              this.setPreferredSize(this.getPreferredSize());          //     causes r/o to be the same length
              //  Size
              setColumns(SIZE, CComboBox.FIELD_HIGHT-4);     
              //     ReadWrite
              if (isReadOnly || !isUpdateable)
                   setReadWrite(false);
              else
                   setReadWrite(true);
         }     //     VNumber
          *  Dispose
         public void dispose()
              m_text = null;
              m_button = null;
              m_mField = null;
         }   //  dispose
          *     Set Document
          *  @param doc document
         protected void setDocument(Document doc)
              m_text.setDocument(doc);
         }     //     getDocument
         private String               m_columnName;
         protected int               m_displayType;     //  Currency / UoM via Context
         private DecimalFormat     m_format;
         private String               m_title;
         private boolean               m_setting;
         private String               m_oldText;
         private String               m_initialText;
         private boolean               m_rangeSet = false;
         private Double               m_minValue;
         private Double               m_maxValue;
         private boolean               m_modified = false;
         /**  The Field                  */
         private CTextField          m_text = new CTextField(SIZE);     //     Standard
         /** The Button                  */
         private CButton              m_button = new CButton();
         private MField          m_mField = null;
         /**     Logger               */
         private static CLogger log = CLogger.getCLogger(VNumber.class);
          *      Set no of Columns
          *     @param columns columns
         public void setColumns (int columns, int height)
              m_text.setPreferredSize(null);
              m_text.setColumns(columns);
              Dimension size = m_text.getPreferredSize();
              if (height > size.height)               //     default 16
                   size.height = height;
              if (CComboBox.FIELD_HIGHT-4 > size.height)
                   size.height = VLookup.FIELD_HIGHT-4;
              this.setPreferredSize(size);          //     causes r/o to be the same length
              this.setMinimumSize(new Dimension (columns*10, size.height));
              m_button.setPreferredSize(new Dimension(size.height, size.height));
         }     //     setColumns
          *     Set Range with min & max
          *  @param minValue min value
          *  @param maxValue max value
          *     @return true, if accepted
         public boolean setRange(Double minValue, Double maxValue)
              m_rangeSet = true;
              m_minValue = minValue;
              m_maxValue = maxValue;
              return m_rangeSet;
         }     //     setRange
          *     Set Range with min & max = parse US style number w/o Gouping
          *  @param minValue min value
          *  @param maxValue max value
          *  @return true if accepted
         public boolean setRange(String minValue, String maxValue)
              if (minValue == null || maxValue == null)
                   return false;
              try
                   m_minValue = Double.valueOf(minValue);
                   m_maxValue = Double.valueOf(maxValue);
              catch (NumberFormatException nfe)
                   return false;
              m_rangeSet = true;
              return m_rangeSet;
         }     //     setRange
          *  Set and check DisplayType
          *  @param displayType display type
         public void setDisplayType (int displayType)
              m_displayType = displayType;
              if (!DisplayType.isNumeric(displayType))
                   m_displayType = DisplayType.Number;
              m_format = DisplayType.getNumberFormat(displayType);
              m_text.setDocument (new MDocNumber(displayType, m_format, m_text, m_title));
         }   //  setDisplayType
          *     Set ReadWrite
          *  @param value value
         public void setReadWrite (boolean value)
              if (m_text.isReadWrite() != value)
                   m_text.setReadWrite(value);
              if (m_button.isReadWrite() != value)
                   m_button.setReadWrite(value);
              //     Don't show button if not ReadWrite
              if (m_button.isVisible() != value)
                   m_button.setVisible(value);
         }     //     setReadWrite
          *     IsReadWrite
          *  @return true if rw
         public boolean isReadWrite()
              return m_text.isReadWrite();
         }     //     isReadWrite
          *     Set Mandatory (and back bolor)
          *  @param mandatory mandatory
         public void setMandatory (boolean mandatory)
              m_text.setMandatory(mandatory);
         }     //     setMandatory
          *     Is it mandatory
          *  @return true if mandatory
         public boolean isMandatory()
              return m_text.isMandatory();
         }     //     isMandatory
          *     Set Background
          *  @param color color
         public void setBackground(Color color)
              m_text.setBackground(color);
         }     //     setBackground
          *     Set Background
          *  @param error error
         public void setBackground (boolean error)
              m_text.setBackground(error);
         }     //     setBackground
          *  Set Foreground
          *  @param fg foreground
         public void setForeground(Color fg)
              m_text.setForeground(fg);
         }   //  setForeground
          *     Set Editor to value
          *  @param value value
         public void setValue(Object value)
              log.finest("Value=" + value);
              if (value == null)
                   m_oldText = "";
              else
                   m_oldText = m_format.format(value);
              //     only set when not updated here
              if (m_setting)
                   return;
              m_text.setText (m_oldText);
              m_initialText = m_oldText;
              m_modified = false;
         }     //     setValue
          *  Property Change Listener
          *  @param evt event
         public void propertyChange (PropertyChangeEvent evt)
              if (evt.getPropertyName().equals(org.compiere.model.MField.PROPERTY))
                   setValue(evt.getNewValue());
         }   //  propertyChange
          *     Return Editor value
          *  @return value value (big decimal or integer)
         public Object getValue()
              if (m_text == null || m_text.getText() == null || m_text.getText().length() == 0)
                   return null;
              String value = m_text.getText();
              //     return 0 if text deleted
              if (value == null || value.length() == 0)
                   if (!m_modified)
                        return null;
                   if (m_displayType == DisplayType.Integer)
                        return new Integer(0);
                   return Env.ZERO;
              if (value.equals(".") || value.equals(",") || value.equals("-"))
                   value = "0";
              try
                   Number number = m_format.parse(value);
                   value = number.toString();      //     converts it to US w/o thousands
                   BigDecimal bd = new BigDecimal(value);
                   if (m_displayType == DisplayType.Integer)
                        return new Integer(bd.intValue());
                   if (bd.signum() == 0)
                        return bd;
                   return bd.setScale(m_format.getMaximumFractionDigits(), BigDecimal.ROUND_HALF_UP);
              catch (Exception e)
                   log.log(Level.SEVERE, "Value=" + value, e);
              if (m_displayType == DisplayType.Integer)
                   return new Integer(0);
              return Env.ZERO;
         }     //     getValue
          *  Return Display Value
          *  @return value
         public String getDisplay()
              return m_text.getText();
         }   //  getDisplay
          *      Get Title
          *     @return title
         public String getTitle()
              return m_title;
         }     //     getTitle
          *      Plus - add one.
          *      Also sets Value
          *     @return new value
         public Object plus()
              Object value = getValue();
              if (value == null)
                   if (m_displayType == DisplayType.Integer)
                        value = new Integer(0);
                   else
                        value = Env.ZERO;
              //     Add
              if (value instanceof BigDecimal)
                   value = ((BigDecimal)value).add(Env.ONE);
              else
                   value = new Integer(((Integer)value).intValue() + 1);
              setValue(value);
              return value;
         }     //     plus
          *      Minus - subtract one, but not below minimum.
          *      Also sets Value
          *     @param minimum minimum
          *     @return new value
         public Object minus (int minimum)
              Object value = getValue();
              if (value == null)
                   if (m_displayType == DisplayType.Integer)
                        value = new Integer(minimum);
                   else
                        value = new BigDecimal(minimum);
                   setValue(value);
                   return value;
              //     Subtract
              if (value instanceof BigDecimal)
                   BigDecimal bd = ((BigDecimal)value).subtract(Env.ONE);
                   BigDecimal min = new BigDecimal(minimum);
                   if (bd.compareTo(min) < 0)
                        value = min;
                   else
                        value = bd;
              else
                   int i = ((Integer)value).intValue();
                   i--;
                   if (i < minimum)
                        i = minimum;
                   value = new Integer(i);
              setValue(value);
              return value;
         }     //     minus
          *     Action Listener
          *  @param e event
         public void actionPerformed (ActionEvent e)
              log.config(e.getActionCommand());
              if (ValuePreference.NAME.equals(e.getActionCommand()))
                   if (MRole.getDefault().isShowPreference())
                        ValuePreference.start (m_mField, getValue());
                   return;
              if (e.getSource() == m_button)
                   m_button.setEnabled(false);
                   String str = startCalculator(this, m_text.getText(), m_format, m_displayType, m_title);
                   m_text.setText(str);
                   m_button.setEnabled(true);
                   try
                        fireVetoableChange (m_columnName, m_oldText, getValue());
                   catch (PropertyVetoException pve)     {}
                   m_text.requestFocus();
         }     //     actionPerformed
          *     Key Listener Interface
          *  @param e event
         public void keyTyped(KeyEvent e)    {}
         public void keyPressed(KeyEvent e)  {}
          *     Key Listener.
          *          - Escape           - Restore old Text
          *          - firstChange     - signal change
          *  @param e event
         public void keyReleased(KeyEvent e)
              log.finest("Key=" + e.getKeyCode() + " - " + e.getKeyChar()
                           + " -> " + m_text.getText());
              //  ESC
              if (e.getKeyCode() == KeyEvent.VK_ESCAPE)
                   m_text.setText(m_initialText);
              m_modified = true;
              m_setting = true;
              try
                   if (e.getKeyCode() == KeyEvent.VK_ENTER)     //     10
                        fireVetoableChange (m_columnName, m_oldText, getValue());
                        fireActionPerformed();
                   else     //     indicate change
                        fireVetoableChange (m_columnName, m_oldText, null);     
              catch (PropertyVetoException pve)     {}
              m_setting = false;
         }     //     keyReleased
          *     Focus Gained
          *  @param e event
         public void focusGained (FocusEvent e)
              if (m_text != null)
                   m_text.selectAll();
         }     //     focusGained
          *     Data Binding to MTable (via GridController.vetoableChange).
          *  @param e event
         public void focusLost (FocusEvent e)
         //          log.finest(e.toString());
              //     APanel - Escape
              if (e.getOppositeComponent() instanceof AGlassPane)
                   m_text.setText(m_initialText);
                   return;
              try
                   fireVetoableChange (m_columnName, m_initialText, getValue());
                   fireActionPerformed();
              catch (PropertyVetoException pve)     {}
         }   //  focusLost
          *     Invalid Entry - Start Calculator
          *  @param jc parent
          *  @param value value
          *  @param format format
          *  @param displayType display type
          *  @param title title
          *  @return value
         public static String startCalculator(Container jc, String value,
              DecimalFormat format, int displayType, String title)
              log.config("Value=" + value);
              BigDecimal startValue = new BigDecimal(0.0);
              try
                   if (value != null && value.length() > 0)
                        Number number = format.parse(value);
                        startValue = new BigDecimal (number.toString());
              catch (ParseException pe)
                   log.info("InvalidEntry - " + pe.getMessage());
              //     Find frame
              Frame frame = Env.getFrame(jc);
              //     Actual Call
              Calculator calc = new Calculator(frame, title,
                   displayType, format, startValue);
              AEnv.showCenterWindow(frame, calc);
              BigDecimal result = calc.getNumber();
              log.config( "Result=" + result);
              calc = null;
              if (result != null)
                   return format.format(result);
              else
                   return value;          //     original value
         }     //     startCalculator
          *  Set Field/WindowNo for ValuePreference
          *  @param mField field
         public void setField (MField mField)
              m_mField = mField;
              if (m_mField != null
                   && MRole.getDefault().isShowPreference())
                   ValuePreference.addMenu (this, popupMenu);
         }   //  setField
          *      Remove Action Listner
          *      @param l Action Listener
         public void removeActionListener(ActionListener l)
              listenerList.remove(ActionListener.class, l);
         }     //     removeActionListener
          *      Add Action Listner
          *      @param l Action Listener
         public void addActionListener(ActionListener l)
              listenerList.add(ActionListener.class, l);
         }     //     addActionListener
          *      Fire Action Event to listeners
         protected void fireActionPerformed()
              int modifiers = 0;
              AWTEvent currentEvent = EventQueue.getCurrentEvent();
              if (currentEvent instanceof InputEvent)
                   modifiers = ((InputEvent)currentEvent).getModifiers();
              else if (currentEvent instanceof ActionEvent)
                   modifiers = ((ActionEvent)currentEvent).getModifiers();
              ActionEvent ae = new ActionEvent (this, ActionEvent.ACTION_PERFORMED,
                   "VNumber", EventQueue.getMostRecentEventTime(), modifiers);
              // Guaranteed to return a non-null array
              Object[] listeners = listenerList.getListenerList();
              // Process the listeners last to first, notifying those that are interested in this event
              for (int i = listeners.length-2; i>=0; i-=2)
                   if (listeners==ActionListener.class)
                        ((ActionListener)listeners[i+1]).actionPerformed(ae);
         }     //     fireActionPerformed
    }     //     VNumber

    If getValue() returns null, you need to trace the execution of the code and figure out which sequence of code is leading to the return of null. This method looks complex - a lot of if statements. If you do not have a debugger, put System.out.println statements inside the method to figure out what's going on.

Maybe you are looking for