jTabbedPane i keyEvent

0

Mam taki mały kłopot (z niewiedzy).

Mam jTabbedPanel, który przetwarza dane po kliknięciu prtzycisku na aktywnym panelu nr xxxx.
Chciałbym aby panel reagował także na naciśnięcie przycisku enter. Wstawiłem dla tego panelu kod dla zdarzenia keyPressed jak niżej:

private void enter(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:

    int kodKlawisza = evt.getKeyCode();
    if(kodKlawisza == KeyEvent.VK_ENTER)
    {
        pesel pes = new pesel(jTextField7.getText().toCharArray());
        if(pes.sprawdz()== false){
             jLabel25.setForeground(Color.RED);
             jLabel25.setText(pes.blad);
         }
        else
          {
            pes.ustawDateUr();
            jLabel25.setText(jLabel25.getText() + " " + pes.getDataUr());
          }
    }
}

czy mógłby ktos wstawić poprawki aby panel w końcu zaczął reagować na przycisk enter z klawiatury?

0

Co to znaczy nacisnąć klawisz Enter na panelu? Użytkownik naciska klawisz Enter i informacje o tym dostaje aktywny komponent, spróbuj na rzecz panelu wywołać metodę requestFocus(), użytkownik może bez problemu przenieść fokus na inny komponent i Twój JTabbedPane nie zareaguje wówczas na Enter.

0

Mam na mysli przetworzenie wprowadzonych danych do kontrolek na panelu. Wstawiłem button i nie ma problemu z obsługą jego kliknięcia. Chciałbym także dodać obsługę naciśnięcia klawisza enter po wprowadzeniu danych.

0

To dodaj KeyListenera do pola tekstowego.

0

jak i w którym miejscu?

0

Ty poważnie pytasz?

  poleTekstowe.addKeyListener(panel);

a w definicji panelu umieść metodę keyPressed(..)

0

Ja pracuję na formatkach NetBeans. W definicji panelu (automatycznie wygenerowana) jest już dodana metoda addActionListener dla zakładki jPanel5, jak niżej:

........
jPanel5.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
panel5_enter(evt);
}
});
..........

zaś kod obsługi zdarzenia, który zresztą już wpisałem jest taki:

........
private void panel5_enter(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:

    if(evt.getKeyCode() == KeyEvent.VK_ENTER)
    {
        pesel pes = new pesel(jTextField7.getText().toCharArray());
    if(pes.sprawdz()== false){
        jLabel25.setForeground(Color.RED);
        jLabel25.setText(pes.blad);
    }
    else
    {
        pes.ustawDateUr();
        jLabel25.setText(jLabel25.getText() + " " + pes.getDataUr());
    }

    }
}       

.........

kod ten zawarty jest także w obsłudze przycisku, więc zamiast go przepisywać wolałbym wywołać metodę:

            jButton6ActionPerformed(?);

Definicja tej metody:

private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {
pesel pes .......
}

tylko nie wiem z jakim argumentem, bo pokazuje błędy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1