Hallo ich habe eine jTabel und ein JTextfield, wenn man bei dem Texfeld nun ein gewissen Ort eingibt (also komplett) wird die Tabelle aktualisiert, sagen wir mal ich gebe "Berlin" ein...
Zu Beginn wird die Tabelle mit allen Zeileneinträgen geladen, wenn ich dann in das Textfeld den ersten Buchstaben oder Zahl eintrage verschwinden alle Einträge, solange bis "Berlin" komplett ausgeschrieben ist. Es wird der entsprechende Eintrag also nur dann angezeigt wenn der String Wert dazu passt.
Jetzt meine Frage: Ist es möglich, dass bereits der Zeileneintrag auftaucht, wenn man noch am Tippen ist?
Also Wenn ich "B" eingebe erscheinen Berlin, Bochum, Bremen, etc. und bei "Be" dann nur noch Berlin und Benzheim, usw.
So siehts aktuell bei mir aus:
Methode um die JTabel mit allen Werten von Filialen_Deutschland zu befüllen (wird im Konstruktor aufgerufen):
Methode für MouseCklicked (hab ein Platzhalter gemacht, deswegen muss die Farbe verändert werden + Aktualisierung der Tabelle bei erneuter Suchabfrage):
Methode für FocusLost (also wenn man aus dem Texfeld wegklickt und es leer ist soll der Plazhalter wieder rein + die Tabelle aktualisiert werden, für den Fall dass das Texfeld leer ist):
Methode für KeyReleased (also immer wenn man was eingibt soll die Tabell entsprechend geändert werden):
Habt ihr Ideen wie man sowas machen könnte bzw. geht sowas überhaupt?
Zu Beginn wird die Tabelle mit allen Zeileneinträgen geladen, wenn ich dann in das Textfeld den ersten Buchstaben oder Zahl eintrage verschwinden alle Einträge, solange bis "Berlin" komplett ausgeschrieben ist. Es wird der entsprechende Eintrag also nur dann angezeigt wenn der String Wert dazu passt.
Jetzt meine Frage: Ist es möglich, dass bereits der Zeileneintrag auftaucht, wenn man noch am Tippen ist?
Also Wenn ich "B" eingebe erscheinen Berlin, Bochum, Bremen, etc. und bei "Be" dann nur noch Berlin und Benzheim, usw.
So siehts aktuell bei mir aus:
Methode um die JTabel mit allen Werten von Filialen_Deutschland zu befüllen (wird im Konstruktor aufgerufen):
Java:
private void Update_Table_Filialen_Deutschland(){
try{
String sql = "SELECT * FROM Filialen_Deutschland";
pst = conn.prepareStatement(sql);
rs = pst.executeQuery();
jTableFilialen_Deutschland.setModel(DbUtils.resultSetToTableModel(rs));
}catch(Exception e){
e.printStackTrace();
}finally{
try{
rs.close();
pst.close();
//conn.close();
}catch(SQLException e){
e.printStackTrace();
JOptionPane.showMessageDialog(null, e);
}
}
Methode für MouseCklicked (hab ein Platzhalter gemacht, deswegen muss die Farbe verändert werden + Aktualisierung der Tabelle bei erneuter Suchabfrage):
Java:
private void jTextFieldSearchA1MouseClicked(java.awt.event.MouseEvent evt) {
jTextFieldSearchA1.setForeground(Color.BLACK);
jTextFieldSearchA1.setText("");
Update_Table_Filialen_Deutschland();
}
Methode für FocusLost (also wenn man aus dem Texfeld wegklickt und es leer ist soll der Plazhalter wieder rein + die Tabelle aktualisiert werden, für den Fall dass das Texfeld leer ist):
Java:
private void jTextFieldSearchA1FocusLost(java.awt.event.FocusEvent evt) {
if(jTextFieldSearchA1.getText().equals("")){
jTextFieldSearchA1.setForeground(Color.lightGray);
jTextFieldSearchA1.setText(" mit Enter bestätigen...");
if((jTextFieldSearchA1.getText().equals("") || jTextFieldSearchA1.getText().equals(" mit Enter bestätigen..."))){
Update_Table_Filialen_Deutschland();
}
}
}
Methode für KeyReleased (also immer wenn man was eingibt soll die Tabell entsprechend geändert werden):
Java:
private void jTextFieldSearchA1KeyReleased(java.awt.event.KeyEvent evt) {
if((jTextFieldSearchA1.getText().equals("") || jTextFieldSearchA1.getText().equals(" mit Enter bestätigen..."))){
Update_Table_Filialen_Deutschland();
}else{
try{
String value = jTextFieldSearchA1.getText();
String sql = "SELECT * FROM Filialen_Deutschland WHERE ORT='" + value + "' ";
pst = conn.prepareStatement(sql);
rs = pst.executeQuery();
jTableFilialen_Deutschland.setModel(DbUtils.resultSetToTableModel(rs));
}catch(Exception e){
e.printStackTrace();
JOptionPane.showMessageDialog(null, e);
}
}
}
Habt ihr Ideen wie man sowas machen könnte bzw. geht sowas überhaupt?