Hallo,
ich wollte in meinem EingabeTextField, nur die Eingabe von Zahlen zulassen. Bin dabei auf JFormattedTextField gestoßen. Ist dies dafür gut geeignet?
Nur wie mache ich dass dann genau? Das eigentliche JFormattetTextField Formatiert nicht, nur was für ein Objekt muss ich dafür erstellen? Und stimmt dass mit NumberFormat?
Und dann will ich noch in meinen anderen TextField's die Eingabe verbieten.
Würde dass damit auch gehen?
MFG
MasterShredder
ich wollte in meinem EingabeTextField, nur die Eingabe von Zahlen zulassen. Bin dabei auf JFormattedTextField gestoßen. Ist dies dafür gut geeignet?
Nur wie mache ich dass dann genau? Das eigentliche JFormattetTextField Formatiert nicht, nur was für ein Objekt muss ich dafür erstellen? Und stimmt dass mit NumberFormat?
Und dann will ich noch in meinen anderen TextField's die Eingabe verbieten.
Würde dass damit auch gehen?
Java:
package Hauptprogramm;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.UIManager;
public class GasPanel extends JPanel{
//Attribute
private double zustandszahl = 0.94876, brennwert = 11.296, abzuege = 2236;
private double doubEingabe, rechnungszeitraum, kwh, aktKosten, kostenOGrundg, diffVJoGrundg, diffVJaus;
private JTextField anzRechnungszeitraum, anzKwh, diffVJ, eingabeKubik, aktRechnungsbetrag, diffVorjahrOgrundg, betragOgrundG;
//Einheiten
private String kwhEin = "kWh";
private char kubikEin = '\u00B3', euroEin = '\u20AC';
//GridBagContrains Objekt
GridBagConstraints gbc = new GridBagConstraints();
//Konstruktor
public GasPanel() {
setLayout(new GridBagLayout());
setPreferredSize(new Dimension(500, 300));
gbc.insets = new Insets(2, 2, 2, 2);
fenster();
}
//Zuweisung GridBagLayout
private void gbl(int gx, int gy, int gw, int gh) {
gbc.gridx = gx;
gbc.gridy = gy;
gbc.gridwidth = gw;
gbc.gridheight = gh;
}
//Verrechnung
private void verrechnen() {
//Umwandlung in kWh
rechnungszeitraum = doubEingabe - abzuege;
kwh = Math.round(rechnungszeitraum * zustandszahl * brennwert);
//kWh * Preis/kWh auf Euro + Grundgebuehr - Vorjahresrechnung
//Preis ohne Grundgebühr
kostenOGrundg = Math.round(kwh * 6.39 / 100);
diffVJoGrundg = Math.round(kostenOGrundg - 385.83);
//Aktuelle Gesamtkosten
aktKosten = Math.round(kwh * 6.39 / 100 + 123.76);
double diffVJ = aktKosten;
diffVJaus = Math.round(diffVJ - 385.83);
}
//Fensteraufbau
public void fenster() {
//Differenz Vorjahr ohne Grundgebühr
JLabel diffVJohneGrundgebuehr = new JLabel("Differenz Vorjahr ohne Grundgebühr:");
gbc.anchor = GridBagConstraints.LINE_START;
gbl(0, 0, 1, 1);
add(diffVJohneGrundgebuehr, gbc);
diffVorjahrOgrundg = new JTextField();
diffVorjahrOgrundg.setPreferredSize(new Dimension(100, 20));
diffVorjahrOgrundg.setBackground(UIManager.getColor("Button.background"));
gbl(1, 0, 1, 1);
add(diffVorjahrOgrundg, gbc);
JLabel diffVorjahrOgrundgEin = new JLabel(euroEin + "");
gbl(2, 0, 1, 1);
add(diffVorjahrOgrundgEin, gbc);
//Betrag ohne Grundgebühr
JLabel betragOGrundgebuehr = new JLabel("Betrag ohne Grundgebühr:");
gbl(0, 1, 1, 1);
add(betragOGrundgebuehr, gbc);
betragOgrundG = new JTextField();
betragOgrundG.setPreferredSize(new Dimension(100, 20));
betragOgrundG.setBackground(UIManager.getColor("Button.background"));
gbl(1, 1, 1, 1);
add(betragOgrundG, gbc);
JLabel betragOgrundgein = new JLabel(euroEin + "");
gbl(2, 1, 1, 1);
add(betragOgrundgein, gbc);
//Differenz Vorjahr
JLabel lblBdiffVj = new JLabel("Differenz Vj:");
gbl(0, 2, 1, 1);
add(lblBdiffVj, gbc);
diffVJ = new JTextField();
diffVJ.setPreferredSize(new Dimension(100, 20));
diffVJ.setBackground(UIManager.getColor("Button.background"));
gbl(1, 2, 1, 1);
add(diffVJ, gbc);
JLabel differenzVJein = new JLabel(euroEin + "");
gbl(2, 2, 1, 1);
add(differenzVJein, gbc);
//Aktueller Rechnungsbetrag
JLabel aktuellerRechBetrag = new JLabel("Aktueller Rechnungsbetrag:");
gbl(0, 3, 1, 1);
add(aktuellerRechBetrag, gbc);
aktRechnungsbetrag = new JTextField();
aktRechnungsbetrag.setPreferredSize(new Dimension(100, 20));
aktRechnungsbetrag.setBackground(UIManager.getColor("Button.background"));
gbl(1, 3, 1, 1);
add(aktRechnungsbetrag, gbc);
JLabel aktuellerRechEin = new JLabel(euroEin + "");
gbl(2, 3, 1, 1);
add(aktuellerRechEin, gbc);
//Stand in kWh
JLabel lblBstndKwh = new JLabel("Stand in kWh:");
gbl(0, 4, 1, 1);
add(lblBstndKwh, gbc);
anzKwh = new JTextField();
anzKwh.setPreferredSize(new Dimension(100, 20));
anzKwh.setBackground(UIManager.getColor("Button.background"));
gbl(1, 4, 1, 1);
add(anzKwh, gbc);
JLabel lblBeinKwh = new JLabel(kwhEin);
gbl(2, 4, 1, 1);
add(lblBeinKwh, gbc);
//Rechnungszeitraum
JLabel lblBrchztr = new JLabel("Rechnungszeitraum:");
gbl(0, 5, 1, 1);
add(lblBrchztr, gbc);
anzRechnungszeitraum = new JTextField();
anzRechnungszeitraum.setPreferredSize(new Dimension(100, 20));
anzRechnungszeitraum.setBackground(UIManager.getColor("Button.background"));
gbl(1, 5, 1, 1);
add(anzRechnungszeitraum, gbc);
JLabel lblKubRchztr = new JLabel("m" + kubikEin);
gbl(2, 5, 1, 1);
add(lblKubRchztr, gbc);
//Aktueller Stand und Eingabe
JLabel lblBakt = new JLabel("Aktueller Stand:");
gbl(0, 6, 1, 1);
add(lblBakt, gbc);
eingabeKubik = new JTextField();
eingabeKubik.setPreferredSize(new Dimension(100, 20));
eingabeKubik.setBackground(UIManager.getColor("Button.background"));
gbl(1, 6, 1, 1);
add(eingabeKubik, gbc);
JLabel lblBkubik = new JLabel("m" + kubikEin);
gbl(2, 6, 1, 1);
add(lblBkubik, gbc);
//Button Aufruf verrechnen()
JButton btnOk = new JButton("OK");
gbc.anchor = GridBagConstraints.CENTER;
gbl(0, 7, 3, 1);
gbc.ipadx = 30;
gbc.ipady = 3;
btnOk.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
doubEingabe = Double.parseDouble(eingabeKubik.getText());
verrechnen();
betragOgrundG.setText(kostenOGrundg + "");
diffVorjahrOgrundg.setText(diffVJoGrundg + "");
anzKwh.setText(kwh + "");
anzRechnungszeitraum.setText(rechnungszeitraum + "");
aktRechnungsbetrag.setText(aktKosten + "");
diffVJ.setText(diffVJaus + "");
}
});
add(btnOk, gbc);
}
}
MFG
MasterShredder