Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
public void actionPerformed(ActionEvent ae) {
if (ae.getSource() == this.BTN_TOLOWER){
TXTAREA.setText(TXTAREA.getText().toLowerCase());
}
if (ae.getSource() == this.BTN_TOUPPER){
TXTAREA.setText(TXTAREA.getText().toUpperCase());
}
if (ae.getSource() == this.BTN_SWAP){
String text = TXTAREA.getText();
String neutext;
for (int i=0; i<text.length();i++){
char b = text.charAt(i);
if (Character.isLowerCase(b)){
b=Character.toUpperCase(b);
}else{
b=Character.toLowerCase(b);
}
neutext = String.valueOf(b).toString();
TXTAREA.setText(neutext);
}
}
}
Hallo Leute ich bin Java Anfänger und habe folgendes Problem:
Beim letzten Teil (BTN_SWAP),
ich will das wenn man auf den Button klickt das im Textarea stehen Wort in Groß bzw. Kleinbuchstaben umgewandelt wird. Wenn es nur große Buchstaben (TO_LOWER) bzw. nur kleine(TO_UPPER) sind gibt es kein Problem.
Allerdings wenn sie gemischt sind bekomme ich es nicht hin. Ich bin jetzt soweit, dass zumindest der letzte Buchstabe im Textarea richtig umgewandelt wird. Aber der Rest halt nicht. Vllt. kann mir jemand helfen wie ich dies realisieren kann oder habe ich den falschen Ansatz gewählt? --> String in char umwandeln....
public void actionPerformed(ActionEvent ae) {
if (ae.getSource() == this.BTN_TOLOWER){
TXTAREA.setText(TXTAREA.getText().toLowerCase());
}
if (ae.getSource() == this.BTN_TOUPPER){
TXTAREA.setText(TXTAREA.getText().toUpperCase());
}
if (ae.getSource() == this.BTN_SWAP){
String text = TXTAREA.getText();
String neutext;
for (int i=0; i<text.length();i++){
char b = text.charAt(i);
if (Character.isLowerCase(b)){
b=Character.toUpperCase(b);
}else{
b=Character.toLowerCase(b);
}
neutext = String.valueOf(b).toString();
TXTAREA.setText(neutext);
}
}
}
In deiner Schleife wird "neutext" jedes mal auf den Wert von String.valueOf(b) gesetzt und der Text der TextArea dann auf diesen Text, letztendlich wirst du in der Textarea also nur das letzte Zeichen des eingegeben Strings stehen haben, da du alle vorherigen immer wieder mit dem nächsten überschreibst.
Ohne zu wissen, ob es vielleicht noch einfacher ginge, so würde ich es machen:
(Sorry, war gerade noch ein Denkfehler drin, so funktioniert es jetzt.)
Java:
if (ae.getSource() == this.BTN_SWAP){
char[] chars = TXTAREA.getText().toCharArray();
for (int i = 0; i < chars.length; i++){
if (Character.isLowerCase(chars[i])){
chars[i] = Character.toUpperCase(chars[i]);
}else{
chars[i] = Character.toLowerCase(chars[i]);
}
}
TXTAREA.setText(String.valueOf(chars));
}