G
Gast2
Gast
Hi zusammen
könnt euch den code kopieren und den effekt anschauen
also ich hatte vor sobald ich auf . drücke, dass er zu den cents wechselt
Code:
package test;
import javax.swing.JFrame;
import studio.base.MoneyField;
public class test extends JFrame
{
MoneyField money;
public test()
{
money=new MoneyField();
getContentPane().add(money);
setSize(200,200);
setVisible(true);
}
public static void main(String [] args)
{
new test();
}
}
Code:
package studio.base;
import java.awt.Toolkit;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.JTextField;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.Document;
import javax.swing.text.JTextComponent;
import javax.swing.text.PlainDocument;
import studio.base.MEDJDateField.DateDocument;
import studio.manager.MEDParamManager;
public class MoneyField extends JTextField implements FocusListener
{
private StringBuffer sb;
private String datum;
private int focus=0;
private String initString="0.00";
public MoneyField()
{
super();
init();
}
public MoneyField(int x ,int y ,int w ,int h,String sToolTip)
{
super();
super.setBounds(x,y,w,h);
super.setToolTipText(sToolTip);
init();
}
public MoneyField(String sBeschriftung)
{
super.setText(sBeschriftung!=null ?sBeschriftung:"0.00");
init();
}
public void init()
{
addFocusListener(this);
this.setDocument(new MoneyDocument(this));
}
// public void setText(String sBeschriftung)
// {
// //super.setText(sBeschriftung!=null ?sBeschriftung:"0.00");
// this.setDocument(new MoneyDocument(this));
// initString ="0.00";
// }
public class MoneyDocument extends PlainDocument
{
private String str;
private String sep1 = ".";
private JTextComponent textComponent;
private int newOffset;
boolean sep=false;
int point=0;
public MoneyDocument(JTextComponent tc)
{
textComponent = tc;
try{
insertString(0,initString,null);
}
catch(Exception ex) {}
}
public void insertString(int offset, String s, AttributeSet attributeSet) throws BadLocationException
{
if(s.equals(initString))
super.insertString(offset,s,attributeSet);
else
{
try
{
newOffset = offset;
if(s.equals(".")&&point==0)
{
sep=true;
point++;
newOffset++;
textComponent.setCaretPosition(newOffset);
}
else
{
sep=false;
Integer.parseInt(s);
}
super.remove(newOffset,1);
super.insertString(newOffset,s,attributeSet);
}
catch(Exception ex2)
{
Toolkit.getDefaultToolkit().beep();
return; //only allow integer values
}
}
}
public void remove(int offset, int length) throws BadLocationException
{
if(sep)
textComponent.setCaretPosition(offset-1);
else
textComponent.setCaretPosition(offset);
}
}
public void focusGained(FocusEvent arg0) {
this.selectAll();
}
public void focusLost(FocusEvent fe) {
}
}
könnt euch den code kopieren und den effekt anschauen
also ich hatte vor sobald ich auf . drücke, dass er zu den cents wechselt