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 appreciatedOK 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). -
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?
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. 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
} // VNumberIf 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
-
HOw to create a foreign key in Derby netbeans 5.0
I am trying to create a primary key in my database/web java application. I am using netbeans 5.0 and java vr5. I have put the following line in the DERBY SQL editor: ALTER TABLE staff ADD CONSTRAINT staff_fk FOREIGN KEY (staffID) REFERENCES staff (st
-
Brush size no longer showing up on cursor
Hi everyone. I use my brushes a lot, but I've just lost all ability to see, on screen, in real time, the outline of my brush; all I get is a cross, no matter how big or small my brush is. The same goes for my clone stamp tool, as well as my dodge and
-
PLEASE HELP!
-
How to Extract FORM 16 Data from r/3
Hi Experts, My client wants to see FORM 16 Report in BI.Is there any BI Content Extractor to Extract FORM 16 Data to BI. If any one worked on this Please Explain How to Get the FORM 16 Data from R/3 to BW. Thanks, -Vijay
-
Hi All, Hope someone can help with the process of updating the software on N91. Have downloaded PC Suite onto PC, when started, the horizontal barberpole just sits there ( 20 min +) . Have unlocked firewalls, reinstalled software, said prayers - the