Funktion ist nicht MAC kompatibel, warum?

Status
Nicht offen für weitere Antworten.
P

PCD

Gast
In meinem Programm gibt es ein TextFeld das nur DoubleZahlen mit zwei Komma Stellen zulässt. Auf Windows funktioniert es, auf Mac nicht? Warum. Ich habe den Code selber geschrieben.

Code:
jtf.setDocument(new EingabeDouble(jtf));

Code:
import java.awt.Toolkit;

import javax.swing.JTextField;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;

public class EingabeDouble extends PlainDocument {
	
	private boolean     punkt = false;
	private int             stellenNachKomma = 0;
	private JTextField  jtf = null;

	public EingabeDouble(JTextField txt) {
		this.jtf = txt;
	}

	public void insertString(int pos, String s, AttributeSet attributeSet) throws BadLocationException {		
		if(jtf.getText().toString().indexOf(",") == -1) {
			punkt = false;
		} else {
			punkt = true;			
		  }

		try {
			if(s.indexOf(",") != -1 && s.length() > 1) {			
				punkt = true;
			}

			if (!s.equals(",")) {				
				Double.parseDouble(s);
				
			} else {
				if (punkt) {
					throw new Exception();
					
				} else {					
					punkt = true;
					
				  }
			  }
						
			if(strAufZweiStellenTesten()) {
				throw new Exception();
			}

		} catch(Exception ex) {
			Toolkit.getDefaultToolkit().beep();
			return;
		  }		
		
		try {
			if(!s.equals(",") && punkt) {
				stellenNachKomma++;
			}
						
		} catch(Exception e) {
		  }

		s = strAufNullVorDemKommaTesten(s);

		super.insertString(pos, s, attributeSet);
	}
	
	private String strAufNullVorDemKommaTesten(String s) {		
		if(jtf.getText().toString().isEmpty()) {
			if(s.equals(",")) {
				if(jtf.getText().indexOf(",") == -1) {			
					s = "0" + s;
				}
			}
		}
		
		return s;		
	}
	
	private boolean strAufZweiStellenTesten() {
		
		String s = jtf.getText();
		int    p = jtf.getText().indexOf(",");
		       p++;
		int    l = jtf.getText().length();
		
		if(jtf.getText().toString().indexOf(",") != -1) {
			if((l-p) >= 2) {
				return true;			
			}	
		}

		return false;		
	}
}
 
P

PCD

Gast
Es soll angeblich nicht möglich sein dieses Textfeld mit Zahlen zu befüllen. Ich würde es gerne selber testen. MAC darf man ja nicht emulieren, die Exception kenne ich auch nicht. Der Benutzer gibt Zahlen ein. Gibt er Buchstaben ein werden diese nicht akzeptiert. Mehr nicht.
 

Wildcard

Top Contributor
Eine Exception wird es wohl auch kaum geben, da du alle Exceptions großzügig verschluckst.
Code:
catch(Exception ex) {
         Toolkit.getDefaultToolkit().beep();
         return;
        }
 
P

PCD

Gast
Aber was geht den da nicht? Unter Windows ist das Programm noch nie abgestürzt. Ist etwa eine 1 auf Windows etwas anderes als eine 1 auf Microsoft?
 

Ebenius

Top Contributor
Code:
public EingabeDouble(JTextField txt) { 
  this.jtf = txt; 
}
// ........
public void insertString(int pos, String s, AttributeSet attributeSet) throws BadLocationException {
  if(jtf.getText().toString().indexOf(",") == -1) {

Auf keinen Fall niemals nicht darf ein Modell seinen Controller kennen! Nie!

Ich schlage Dir vor, den gesamten Code zu vergessen (im Sinne von löschen) und statt dessen ein JFormattedTextField oder einen JSpinner zu verwenden!
PCD hat gesagt.:
Ist etwa eine 1 auf Windows etwas anderes als eine 1 auf Microsoft?
Du meinst wirklich W1ndows und M1crosoft? :lol: Welches der beiden wohl die kleinere 1 hat? :)

Ebenius
 

Ebenius

Top Contributor
Sobald es ein Modell und einen Controller gibt die nicht identisch sind, trifft die Aussage zu und hat die rote Farbe, die Ausrufezeichen, die größere Schriftart und den Fettdruck verdient. :)
 
G

Gast2

Gast
Naja es kann schon SINNmachen dass ein PlainDocument das textfeld an sich kennt. Es gibt keinen grund der dagegen spricht....

@Threadsteller
http://www.java-forum.org/de/viewtopic.php?t=7909

es gibt doch schon dokumentarten mit double die auch funktionieren ;) versuch doch mal die...
ansonsten mach mak bei deinen exception ex.printStackTrace();
 
G

Gast2

Gast
warum sollte man es zwischen einem textfeld und document machen???
Wie gesagt ich finde keinen nachteil wenn dass document sein textfeld kennt???
Wo ist der nachteil wenn das ducument sein textfeld kennt??Die 2 Klassen sind eh stark gekoppelt..
Da das Textfeld auch die Daten enthält und man diese benötigt um nache eingaben nicht zuzulassen...
z.B bei einem Datum braucht man eventuell das zeichen davor usw.
 

Ebenius

Top Contributor
Schau Dir das Diagramm unter "Structure" genau an: Java BluePrints: Model-View-Controller.

// EDIT: Das Diagramm war's gar nicht, aber der Text bei "Solution":
Solution

By applying the Model-View-Controller (MVC) architecture to a JavaTM 2 Platform, Enterprise Edition (J2EETM) application, you separate core business model functionality from the presentation and control logic that uses this functionality. Such separation allows multiple views to share the same enterprise data model, which makes supporting multiple clients easier to implement, test, and maintain.

Du trennst core business model functionality von der control logic. Trennen heißt schon, dass das Model nichts mit dem Controller zu tun haben sollte.

Ich kann zum Beispiel jedes Swing-Modell mehreren Controllern gleichzeitig zuweisen. Wie soll das gehen, wenn das Modell einen kennen will?

Ebenius
 

Ebenius

Top Contributor
SirWayne hat gesagt.:
Da das Textfeld auch die Daten enthält und man diese benötigt um nache eingaben nicht zuzulassen...

Das hab ich ja vorhin gar nicht gesehen. Seit wann kennt eine Swing-Komponente Ihre Daten? Genau dafür ist doch das Modell da! Das Modell hat die Daten selbst; beim Document holt man den gesamten Text per:
Code:
final Document doc = new PlainDocument();
final String gesamterText = doc.getText(0, doc.getLength());

Ebenius
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Swing Funktion repaint() updated nicht AWT, Swing, JavaFX & SWT 5
D Funktion JList.getSelectedValues() gibt nicht alle values zurück AWT, Swing, JavaFX & SWT 2
D paint-Funktion wird nicht ausgeführt AWT, Swing, JavaFX & SWT 6
Juelin JavaFX Netbeans Aufruf Funktion aus Scenebuilder AWT, Swing, JavaFX & SWT 8
G JButton mit importFiles-Funktion auf JDrawPane AWT, Swing, JavaFX & SWT 5
L JavaFx Textformatierung mittels Datenbank und Funktion anpassen AWT, Swing, JavaFX & SWT 5
T Combobox mit Autocomplete-Funktion AWT, Swing, JavaFX & SWT 7
C Swing Aufruf der Funktion (die ein Dialog anzeigt) über Symbol anzeigen lassen AWT, Swing, JavaFX & SWT 4
L Button Funktion zuweisen in WindowBuilder AWT, Swing, JavaFX & SWT 22
A Button mit Speicher-Funktion AWT, Swing, JavaFX & SWT 8
F main-Funktion bei Swing AWT, Swing, JavaFX & SWT 4
kilopack15 Buttons ohne Funktion AWT, Swing, JavaFX & SWT 2
J Event Handling Frage zu der Funktion addActionListener AWT, Swing, JavaFX & SWT 2
D SWT Button mit F5-Funktion AWT, Swing, JavaFX & SWT 1
E ActionListener führt falsche Funktion aus AWT, Swing, JavaFX & SWT 6
C Swing JTextField Funktion zuweisen - Löschen von Buchstaben/Sonderzeichen AWT, Swing, JavaFX & SWT 6
K Funktion für das Bewegen des Balles AWT, Swing, JavaFX & SWT 5
A Trennung GUI und Funktion AWT, Swing, JavaFX & SWT 5
A Textfeld.append/.setText ohne Funktion AWT, Swing, JavaFX & SWT 2
F Swing JTextField in JList (Funktion beibehalten) AWT, Swing, JavaFX & SWT 2
U Disable-Funktion AWT, Swing, JavaFX & SWT 1
C Swing Durch Inhaltsänderung eines JTextfields eine Funktion aufrufen AWT, Swing, JavaFX & SWT 5
J Swing Nach SwingWorker Funktion aus der GUI Klasse aufrufen AWT, Swing, JavaFX & SWT 5
W Funktion aus einer Java Datei in eine andere einbauen AWT, Swing, JavaFX & SWT 25
W Funktion per Tastendruck aufrufen. AWT, Swing, JavaFX & SWT 10
T ableitung übermalt die funktion AWT, Swing, JavaFX & SWT 3
lumo SWT Image funktion auf ImageDaten AWT, Swing, JavaFX & SWT 9
R mathematische Funktion x^2 AWT, Swing, JavaFX & SWT 6
R mathemathische Funktion x^2 AWT, Swing, JavaFX & SWT 2
J Progressbar mit einfacher Funktion AWT, Swing, JavaFX & SWT 6
L Swing Funktion animieren AWT, Swing, JavaFX & SWT 10
O Variablen an anonyme Funktion AWT, Swing, JavaFX & SWT 10
G Swing Update-Funktion für Swing-Anwendung AWT, Swing, JavaFX & SWT 5
J Swing JDialog mit static-Funktion anzeigen -> Rückgabewert AWT, Swing, JavaFX & SWT 3
I JTextArea mit Copy Paste Funktion AWT, Swing, JavaFX & SWT 7
H Funktion ausführen wenn Button gedrückt wird. AWT, Swing, JavaFX & SWT 2
B Restart-Funktion für einen Updatemechanismus?????? AWT, Swing, JavaFX & SWT 4
G F6 Funktion AWT, Swing, JavaFX & SWT 2
S Swing Button mit Funktion abbilden AWT, Swing, JavaFX & SWT 3
S Funktion nur ausführen, wenn Maus über Componente ist AWT, Swing, JavaFX & SWT 2
A Sleep Funktion / Thread-Problem ! AWT, Swing, JavaFX & SWT 11
GilbertGrape bei "Enter" Funktion ausführen, egal wo der Fokus AWT, Swing, JavaFX & SWT 2
F Jframe Exit Funktion überladen AWT, Swing, JavaFX & SWT 3
G kreis malen -> welche funktion? AWT, Swing, JavaFX & SWT 3
D SWT: Funktion zum Auslesen der Schriftgröße AWT, Swing, JavaFX & SWT 2
D GroupLayout an un plötzlich is CardLayout Funktion tot? AWT, Swing, JavaFX & SWT 10
R Editor mit "Gehe zu"-Funktion AWT, Swing, JavaFX & SWT 4
W Unterdrückung von FrameIcon-Funktion im JInternalFrame AWT, Swing, JavaFX & SWT 5
G Funktion für PopUp Menü AWT, Swing, JavaFX & SWT 32
F ZOOM Funktion in JTextPane AWT, Swing, JavaFX & SWT 6
A Drag and Drop Funktion mit JLabel AWT, Swing, JavaFX & SWT 5
E Beim Schließen des Fensters eigene Funktion aufrufen AWT, Swing, JavaFX & SWT 8
L JOP.showInputDialog: Abbrechen Button-Funktion beenden AWT, Swing, JavaFX & SWT 5
D setPreferredSize(), setMaximumSize() ohne Funktion? AWT, Swing, JavaFX & SWT 4
S JComboBox -> undo Funktion hinzufügen! AWT, Swing, JavaFX & SWT 2
Z Welche Funktion von JTextArea muß ich überschreiben? AWT, Swing, JavaFX & SWT 4
R TAB-Funktion in Fenster ändern - genauer: STRG+TAB AWT, Swing, JavaFX & SWT 5
P Rückgängig-Funktion im Malprogramm AWT, Swing, JavaFX & SWT 3
Juelin if Abfrage funktioniert nicht richtig AWT, Swing, JavaFX & SWT 10
MiMa Darstellung von FXML ateien nicht korrekt (SceneBuilder) AWT, Swing, JavaFX & SWT 2
P Methode wird nicht überprüft AWT, Swing, JavaFX & SWT 4
C Button ActionListener funktioniert nicht AWT, Swing, JavaFX & SWT 1
M Mandelbrot mit BigDecimal erstellen und in der UI zeichnen, funktionierte nicht. AWT, Swing, JavaFX & SWT 1
H JavaFX PixelWriter.setColor setzt Farbe nicht AWT, Swing, JavaFX & SWT 2
M JavaFX Diagonale Linie nicht ausgegeben/angezeigt AWT, Swing, JavaFX & SWT 1
M JavaFX Mandelbrot-bild noch nicht optimiert AWT, Swing, JavaFX & SWT 7
Hatsi09 Javafx MediaPlayer spielt nicht immer AWT, Swing, JavaFX & SWT 3
P thread nimmt veränderte boolean nicht AWT, Swing, JavaFX & SWT 7
P Animation läuft nicht korrekt AWT, Swing, JavaFX & SWT 8
P AWT Programm funktioniert nicht richtig AWT, Swing, JavaFX & SWT 35
P JTextField wird nur sehr klein angezeigt und verändert die Größe nicht AWT, Swing, JavaFX & SWT 3
Telisti Javafx Image wird nicht richtig integiert AWT, Swing, JavaFX & SWT 8
J Netbeans die JavaFX-Anwendung wird nicht ausgeführt AWT, Swing, JavaFX & SWT 16
thor_norsk Icons laden nicht in GUI AWT, Swing, JavaFX & SWT 15
N €-Zeichen wird nicht akzeptiert AWT, Swing, JavaFX & SWT 4
tommybalbor JavaFx Anwendung klappt nicht für macOs Nutzern, wenn ich zwei dependecies bei maven hinzufüge AWT, Swing, JavaFX & SWT 6
G JOptionPane zeigt nicht an was ich will AWT, Swing, JavaFX & SWT 2
S JavaFX WebView zeigt bestimmte Websites nicht an AWT, Swing, JavaFX & SWT 2
R auto. Importanweisungen für javafx funktioniert in Eclipse nicht mehr AWT, Swing, JavaFX & SWT 4
berserkerdq2 Anchorpane warum kann ich nicht Anchors setzen AWT, Swing, JavaFX & SWT 6
komplettlost Vollbildmodus für MacOs Nutzer geht nicht AWT, Swing, JavaFX & SWT 13
M Scrollbar funktioniert nicht AWT, Swing, JavaFX & SWT 10
D Repaint Funktioniert nicht AWT, Swing, JavaFX & SWT 2
W JEditorPane textausrichtung nach settext funktioniert nicht mehr AWT, Swing, JavaFX & SWT 11
H JList.setEnabled(false) - Text soll nicht grau sein AWT, Swing, JavaFX & SWT 2
_user_q Objekt.setSelected(false), wenn es nicht mehr fokussiert wird AWT, Swing, JavaFX & SWT 2
sserio JFrame setIconImmage() funktioniert nicht AWT, Swing, JavaFX & SWT 3
R Fxml findet controller nicht AWT, Swing, JavaFX & SWT 2
D Swing Komponenten nicht sichtbar nach Start AWT, Swing, JavaFX & SWT 12
frager2345 Warum paintComponent hier und nicht paint AWT, Swing, JavaFX & SWT 2
_user_q [JavaFX] Spinner so einstellen, dass er nicht leer bleiben darf? AWT, Swing, JavaFX & SWT 6
T Swing Tooltip-Delay funktioniert nicht immer. AWT, Swing, JavaFX & SWT 1
J Programm findet Resource nicht. AWT, Swing, JavaFX & SWT 6
S Javafx getResource-Pfad wird nicht erkannt AWT, Swing, JavaFX & SWT 7
B Swing Menü geht nicht AWT, Swing, JavaFX & SWT 5
B Bild lädt nicht AWT, Swing, JavaFX & SWT 2
princess_sara1997 .jar Datei führt den Code nicht richtig aus AWT, Swing, JavaFX & SWT 19
S Ich bringe Code mit JavaFX unter Apache NetBeans IDE 12.6 nicht zum laufen. AWT, Swing, JavaFX & SWT 14
U Code doch nicht austauschbar in 2DGraphics AWT, Swing, JavaFX & SWT 2
P JavaFX Änderungen am Datenmodell visuell nicht sichtbar AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben