JTextField – Caret ist nicht sichtbar



  • Mein JPanel beinhaltet mehrere Komponente (TextFelder, Buttons usw.) ...
    Wenn der Button gedrückt wird soll der TextField den Focus erhalten, so das ich sofort ins das Field Zahlen eingeben kann.

    // Focus setzen
        jTextField.requestFocus();
        jTextField.setCaretColor(Color.red);
        jTextField.setCaretPosition(0);
    

    der Problem aber ist das der CARET nicht sichtbar ist, bzw. die Eingabe lässt sich nicht Markieren, obwohl ich sofort nach dem ich den Button gedrückt habe ins Field schreiben kann.
    Was mache ich denn Falsch???

    Pepe.



  • Also das Problem kann ich mit dem Beispielcode unten nicht nachvollziehen. Der Caret hüpft zwischen den Feldern und markiert den gesamten Text innerhalb des Textfelds ... probiers ma aus.
    [java]/*
    * FocusDemo.java
    *
    * Created on 25. März 2003, 10:45
    /
    import javax.swing.
    ;
    import java.awt.;
    import java.awt.event.
    ;
    /**
    *
    * @author Cengiz Sahin
    */
    public class FocusDemo extends JFrame {
    JTextField jt1 = new JTextField("1234");
    JTextField jt2 = new JTextField("3.141528");
    JTextField jt3 = new JTextField("32767");
    JButton jBtn = new JButton("Next Field");
    int selector = 0;
    /** Creates a new instance of FocusDemo */
    public FocusDemo() {
    super("Focus-Demo");
    Container cnt = this.getContentPane();
    cnt.setLayout(new FlowLayout());

    this.setDefaultCloseOperation(EXIT_ON_CLOSE);
    jBtn.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent evt) {
    JTextField focusField = null;
    if (++selector > 3) selector=1;
    switch (selector) {
    case 1: focusField = jt1; break;
    case 2: focusField = jt2; break;
    case 3: focusField = jt3; break;
    }
    focusField.requestFocus();
    focusField.setCaretColor(Color.red);
    focusField.setCaretPosition(0);
    focusField.selectAll();
    }
    });
    cnt.add(jt1);
    cnt.add(jt2);
    cnt.add(jt3);
    cnt.add(jBtn);
    this.pack();
    this.setVisible(true);
    }

    public static void main (String args[]) {
    new FocusDemo();
    }
    }[/code]



  • jetzt funkt. ich Danke dir 😃

    MFG
    Pepe


Anmelden zum Antworten