Keresés

Új hozzászólás Aktív témák

  • orc88

    őstag

    válasz orc88 #10331 üzenetére

    Ismét ezzel táblázatos gyakorló projektemmel van gond, 2 napja próbálkozok mindennel IS, többször újraírtam a kérdéses részt, de nem akarja az igazat :(

    Van 1 textfield, ahova vonalkód olvasóval lehet bevinni az adatokat, a vonalkód olvasó az olvasás után ENTER-t "üt".
    A kód szépen megtalálja, végrehajtja a megfelelő utasításokat a saját gépemen amin írom (i7 3.7Ghz + 12GB ram). A probléma akkor következik, mikor egy lassú pentiumos laptopon futtatom, hibajelenség:
    - 5x olvastam le ugyanazt a kódot egymás után, és össze vissza dobál ✔-t és ✖-et ovlasás után.
    - sokszor elkezd ugrálni a táblázatban még azelőtt mielőtt érkezne az Enter... (nincs más key event hozzárendelve)

    Mivel teljesen random viselkedik ugyanazon vonalkód esetében is már csak arra tudtam gondolni, hogy "túl" gyors neki az olvasás, vagy nem elég hatékony a kódom, más logikus magyarázatot nem találtam.. :U

    De hátha ti jobban átlátjátok :B

    Az Enter után keresem ki, hogy melyik áruról van szó:

    private void text_searchKeyReleased(java.awt.event.KeyEvent evt) {
      if(evt.getKeyCode() == java.awt.event.KeyEvent.VK_ENTER) {
        indextalalat = -2;
        zText.setLength(0); //Stringbuildert használok, hogy megmaradjon az utolsó érték a field ürítése után is.
        zText.append(text_search.getText());
        for (int i = 0; i <= tabla.getRowCount()-1; i++) {
        if (tabla.getValueAt(i, 2).toString().replaceAll("\\s+","").equals(text_search.getText())) {
        indextalalat = i;
        break;
      }
    }

        if (indextalalat != -2) {
            text_search.setText(null);
            talalatLabel0.setText("✔");
            tabla.setRowSelectionInterval(indextalalat, indextalalat);
            tabla.scrollRectToVisible(new Rectangle(tabla2.getCellRect(indextalalat, 0, true)));
            setTexts();
          } else {
            text_search.setText(null);
            talalatLabel0.setText("✖");
            tabla.removeColumnSelectionInterval(0, tabla.getColumnCount()-1);
          }

        }

    }

  • Drizzt

    nagyúr

    válasz orc88 #10331 üzenetére

    Én ugyan nem értek az AWT-hez, de az hogyan találja ki up, vagy down arrow lenyomásra, hogy fel, vagy le kell állítania az aktuális sort?
    A handler amit írtál, mindenképpen beállítja a textet a kijelölt sor alapján. De mi állítja be a kijelölt sort? Van valami az AWT-ben ami automatikusan állítja a sor billentyű lenyomásra? Ebben az esetben valamilyen olyan listenert kellene meghívni ami biztosan a selection megváltozása után lesz meghívva.

    Itt pl. a ListSelectionListener.

Új hozzászólás Aktív témák