Ich habe eine JTextArea in der ich mittels Tabulatortaste Texte „tabellarisch“ anordne. In Java8 und OpenJDK8 funktioniert das alles.
Ich drücke 1x Tabulator und der Cursor springt zu Spalte 20 in der JTextArea. Drücke ich 2x Tabulator springt der Cursor zu Spalte 40.
Bei OpenJDK 11 ist es jetzt so, dass beim Drücken der Tabulatortaste der Cursor eine feste Anzahl an Leerzeichen weiterspringt. Damit kann ich die Texte nicht mehr „tabellarisch“ anordnen. Nur wenn ich Leerzeichen verwende.
Kann man dieses Tabulatorverhalten irgendwo konfigurieren?
Wenn du EIN mal TAB drückst, musst du danach ACHT mal „Backspace“ drücken, um den alten Zustand herzustellen? (Also: Er fügt wirklich echte Leerzeichen ein? Oder wird es einfach nur ~„falsch eingerückt angezeigt“?)
Ok, dann ist das irgendeine Rendering-Sache… da müßte man mal genauer schauen (hab’ das OpenJDK 11 gerade nicht zur Hand, deswegen kann ich da gerade nicht „ad hoc“ was machen). Ein paar weitere relevante Details:
Setzt du eine bestimmte Schriftart? (Funktioniert es z.B., wenn man einen "Monospaced" Font hat?)
Machst irgendwelchen kranken shyce mit Arabischen Zeichen („Right-To-Left“) oder sonstigen Unicode-Besonderheiten?
Hängt der Unterschied wirklich nur davon ab, ob es mit der OpenJDK8- oder der OpenJDK11-VM ausgeführt wird (unabhängig vom compilieren)?
Die Frage ist, ob es nach dem Umschalten vor dem Testen auf die geänderte VM neu kompiliert wird… Die Frage ist also… Funktionieren der Bytecode der VM8 auf der VM13 wie auf der VM8 oder so, als wenn das Programm als VM13 auf der VM13 läuft. Damit kann man testen, ob es an der VM oder am Kompiler liegt. Verstehst du, worauf ich hinaus will?
Also, du musst professionell vorgehen, d. h., jeder einzelne Schritt muss reproduzierbar sein, d. h., am einfachsten wäre es, es einmal manuell mit dem JDK8 zu kompilieren und es dann einmal mit j8 und j13(?) zu starten, danach das gleiche noch mal mit dem JDK13(?)…
Nah, da muss man mal schauen, ob man durch Draufschauen auf den Code einen Hinweis auf das Problem (und eine mögliche Lösung) erkennt, oder ggf. irgenwelche Debug-Hilfen basteln. Im wesentlichen ist es ja, wenn ich das richtig verstanden habe, so, dass ein „TAB“ beim neueren JDK nicht richtig eingerückt angezeigt wird. Vielleicht findet man da was…