JTextArea leeren nach Enter

Rambomaster

Mitglied
Ich habe eine JTextArea welche auf Enter reagiert. Wenn ich Enter drücke soll der Text ausgegeben und danach die TextArea wieder geleert werden. Die TextArea soll aber nur geleert werden, wenn auch etwas drin steht.

Das Problem ist aber, dass es immer noch ein Zeilenumbruch gibt nachdem ich Enter gedrückt habe. Desshalb weiss ich nicht wie ich überprüfen kann ob die TextArea leer ist und ich habe einen überflüssigen Zeilenumbruch in der Ausgabe.

Es sollte aber trotzdem möglich sein einen Zeilenumbruch zu machen, indem man Shift+Enter drückt.

Momentan arbeite ich mit einem KeyListener und dort die keyReleased() Methode.

Hier der Code vom KeyListener:
Code:
public void keyReleased(KeyEvent ev) {
	if(ev.getKeyCode() == 10) {
		chatRead.append(chatWrite.getText());
		System.out.println(chatWrite.getText());
		chatWrite.setText("");
	}
}

Gruss Rambomaster
 
Hallo,

was dir glaube ich helfen könnte ist
Code:
e.consume()
.

Das fängt den momentanen Tastendruck ab, dann kannst du selbst entscheiden was geschehen soll.

So könnte das ganze aussehen
Java:
new KeyListener(){
			boolean shiftPressed;
			public void keyPressed(KeyEvent e) {
				if(e.getKeyCode() == KeyEvent.VK_SHIFT){
					shiftPressed = true;
				}
				else if(e.getKeyCode() == KeyEvent.VK_ENTER){
					e.consume();
					if(shiftPressed){
						chatWrite.append("\n");
					}
					else{
						chatRead.append(chatWrite.getText());
						System.out.println(chatWrite.getText());
						chatWrite.setText("");
					}
				}
			}

			public void keyReleased(KeyEvent e) {
				if(e.getKeyCode() == KeyEvent.VK_SHIFT){
					shiftPressed = false;
				}
			}

			public void keyTyped(KeyEvent e) {
				// TODO Auto-generated method stub
				
			}
			
		}


MFG

zEriX
 
Danke zerix jetzt funktionierts.

Hier mein KeyListener:
Java:
chatWrite.addKeyListener(new KeyListener() {
	boolean shiftPressed;
	public void keyPressed(KeyEvent e) {
		if(e.getKeyCode() == KeyEvent.VK_SHIFT) {
			shiftPressed = true;
		} else if(e.getKeyCode() == KeyEvent.VK_ENTER) {
			e.consume();
			if(shiftPressed) {
				chatWrite.append("\n");
			} else if(!chatWrite.getText().equals("")) {
				chatRead.append("(Name) sagt:\n");
				chatRead.append(chatWrite.getText() +"\n\n");
				chatWrite.setText("");
			}
		}
	}
	public void keyReleased(KeyEvent e) {
		if(e.getKeyCode() == KeyEvent.VK_SHIFT) {
			shiftPressed = false;
		}
	}
	public void keyTyped(KeyEvent e) {
		
	}
});
 
Zurück