Textfield

Status
Nicht offen für weitere Antworten.

GerryGabanas

Mitglied
Hallo Leute,

also ich füge meinen Spiel gerade eine Chat Funktion hinzu, jedoch hakt es momentan daran, dass die Eingaben aus dem JTextField userInput nicht ins JEditorPane chatPane geschrieben werden. Ist zwar alles auf C/S bereits ausgelegt, aber damit ich diesen Fehler finde will ich jetzt erstmal, dass meine Eingabe und dann Enter im vorgesehenen chatPane ausgegeben wird und dann im TextField userInput wieder alles leer und frei ist

Code:
	    userInput = new JTextField("Deine Nachricht: ");
	    userInput.setBounds(0, 710, 797, 26);
	    userInput.setBackground(Color.red);
	    userInput.setForeground(Color.white);
	    userInput.setBorder(null);
	    userInput.setCaretColor(Color.red);

	    chatPane = new JEditorPane();
	    chatPane.setBounds(0, 600, 797, 110);
	    chatPane.setBackground(Color.black);
	    chatPane.setForeground(Color.white);
	    chatPane.setCaretColor(Color.black);
	    chatPane.setEnabled(false);
	    //chatPane.setText(chat.Message);

    public void keyPressed(KeyEvent e)
    {
    	int taste = e.getKeyCode();
       if(taste == 13)
       {
   	    chatPane.setText(userInput.getText());
       } 
    }

Also die Auszüge aus dem Quelltext samt Keylistener, aber dat jeht nicht.
So'n Mist :bahnhof:
 
Hallo,


versuch das mal im KeyListener mit

Code:
public void keyTyped(KeyEvent e)
    {
       char  taste = e.getKeyChar();

       if (taste == KeyEvent.VK_ENTER) {
          chatPane.setText(userInput.getText());
       }
    }


Gruß, Tom.[/code]
 
Ne, geht leider nicht.
Liegt es vielleicht daran, dass ich den Listener noch nicht geadded habe?

Sorry, eigentlich trivial, aber in Java scheint die Texteingabe was komplizierter zu sein.
Der Text müsste doch eigentlich nach dem Enter in meinem JPanel erscheinen.
Kannst du mir da einfach mal einen Listener (wie du das machen würdest) posten? Weil bei java ist eine Insel das nicht so dolle ausführlich erklärt ist.

Wieso ist das so ein Problem???
 
Hallo,

hab das jetzt mal so gemacht, das Du damit klar kommen müsstest,

Code:
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JTextField;


public class TextfeldTest extends JFrame implements KeyListener {

    TextfeldTest frame;
    JTextField      userInput   = new JTextField("Deine Nachricht: ");
    JEditorPane     chatPane    = new JEditorPane();
    
    public TextfeldTest(){
        super("Textfeldeingabe");
        
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new GridLayout(2,2));
        
        
        userInput.setBounds(0, 710, 797, 26);
        userInput.setBackground(Color.red);
        userInput.setForeground(Color.white);
        userInput.selectAll();
        userInput.addKeyListener(this);
        add(userInput);
        
        chatPane.setBounds(0, 600, 797, 110);
        chatPane.setBackground(Color.black);
        chatPane.setForeground(Color.white);
        chatPane.setCaretColor(Color.black);
        chatPane.setEnabled(false); 
        add(chatPane);
        
        //Das Frame
        pack();
        setSize(400,400);
        setVisible(true);
    }
   
    public static void main(String[] args) {
    TextfeldTest frame = new TextfeldTest();
    }

    public void keyTyped(KeyEvent e) {
        
        char taste = e.getKeyChar();
        
        if (taste == KeyEvent.VK_ENTER) {
            if (!chatPane.getText().equals("")) {
                chatPane.setText(chatPane.getText() + "\n" + userInput.getText());
            } else {
                chatPane.setText(userInput.getText());
            }
            userInput.setText("");
        }
    }

    public void keyPressed(KeyEvent e) {
    }

    public void keyReleased(KeyEvent e) {
    }
    
    
}


Ich hoffe, das reicht Dir,

Gruß, Tom.
 
DANKE!!!

Anbei nochmal ne kurze Frage:

lag es etwa an fehlenden Zeilen wie userInput.selectAll();
Also kann gar nichts ausgelesen werden, wenn vorher z.B. nicht selectAll() gemacht wird?
Gruß
 
Hallo,

.selectAll() selektiert nur den "Vorgabetext", das ist halt komfortabler, wenn der User anfängt einen Text einzugeben, dann wird die Vorgabe gelöscht. Bei Dir lag es am nicht geaddeten KeyListener wie weiter oben ja schon jemand geschrieben hat.

Gruß, Tom.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben