SWT Search string highlite

Bitte aktiviere JavaScript!
Hallo,
ich habe folgende Frage: ich habe eine Datenbank im Backend,welche bei Applikationsstart automtisch in ein Java SWT Widget geladen wird.
Dann habe ich eine Searchbox eingebaut, bei der man ein Suchstring eingeben kann. Nun möchte ich, dass es den gesuchten String gelb markiert. Z.B. ich suche nach AXJ und der Datensatz lautet AXJXX.LFXX.XCXX.O.L. Dann soll nur das AXJ am Anfang gelb markiert warden, nicht die ganze Zeile.
Wie kann man das machen? Ich habe in SWT nichts finden können (bin aber auch ein Neuling).

Vielen Dank im Voraus.
 
A

Anzeige


Vielleicht hilft dir dieser Kurs hier weiter: (hier klicken)
Schau mal hier. Damit müsstest du dir was basteln können.
Noch eine Frage: Ich habe es soweit,dass es mir den Suchstring gelb markiert.Aber ich möchte,dass eine Art Next-Funktion hat.Sprich: Es zeigt als erstes den ersten Treffer an (markiert es gelb) und mit dem Next-Button springt es zum zweiten Treffer usw. Wie kann das am besten machen?
 
Ich habe unten stehenden Code bei mir,der aber die ganze Zeile gelb markiert, wenn der Suchstring vorhanden. Wie muss ich das anpassen,damit es nur den Suchstring gelb markiert? Ich kriegs nicht hin,kann mir jemand helfen bitte..

Java:
public void createPartControl(Composite parent) {
        GridLayout layout = new GridLayout(2, false);
        parent.setLayout(layout);
        final Text searchText = new Text(parent, SWT.BORDER | SWT.SEARCH);
        searchText.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL));
        final Button searchBtn = new Button(parent, SWT.BORDER | SWT.PUSH);
        searchBtn.setText("Search");
        searchBtn.addSelectionListener(new SelectionAdapter() {
          public void widgetSelected(SelectionEvent e) {
              for(TableItem ti: viewer.getTable().getItems()) {
                ti.setBackground(new org.eclipse.swt.graphics.Color (null, 255, 255, 255));
                    if(ti.getData().toString().contains(searchText.getText())) {
                      ti.setBackground(new org.eclipse.swt.graphics.Color (null, 255, 255, 0));
                    }              
              }            
          }
        });
..........
final Text inputSearchTerm = new Text(filterGroup, SWT.SINGLE | SWT.BORDER);
     final Button searchBtn = new Button(filterGroup, SWT.BORDER | SWT.PUSH);
     searchBtn.setText("Search");
     searchBtn.addSelectionListener(new SelectionAdapter() {
       public void widgetSelected(SelectionEvent e) {
         for (TableItem ti:table.getItems()) {
          System.out.println(ti.getText(0));
         }
         System.out.println("search");
       }            
     });
 
Zuletzt bearbeitet:
Ich habe unten stehenden Code bei mir,der aber die ganze Zeile gelb markiert, wenn der Suchstring vorhanden. Wie muss ich das anpassen,damit es nur den Suchstring gelb markiert? Ich kriegs nicht hin,kann mir jemand helfen bitte..

Java:
public void createPartControl(Composite parent) {
        GridLayout layout = new GridLayout(2, false);
        parent.setLayout(layout);
        final Text searchText = new Text(parent, SWT.BORDER | SWT.SEARCH);
        searchText.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL));
        final Button searchBtn = new Button(parent, SWT.BORDER | SWT.PUSH);
        searchBtn.setText("Search");
        searchBtn.addSelectionListener(new SelectionAdapter() {
          public void widgetSelected(SelectionEvent e) {
              for(TableItem ti: viewer.getTable().getItems()) {
                ti.setBackground(new org.eclipse.swt.graphics.Color (null, 255, 255, 255));
                    if(ti.getData().toString().contains(searchText.getText())) {
                      ti.setBackground(new org.eclipse.swt.graphics.Color (null, 255, 255, 0));
                    }            
              }          
          }
        });
..........
final Text inputSearchTerm = new Text(filterGroup, SWT.SINGLE | SWT.BORDER);
     final Button searchBtn = new Button(filterGroup, SWT.BORDER | SWT.PUSH);
     searchBtn.setText("Search");
     searchBtn.addSelectionListener(new SelectionAdapter() {
       public void widgetSelected(SelectionEvent e) {
         for (TableItem ti:table.getItems()) {
          System.out.println(ti.getText(0));
         }
         System.out.println("search");
       }          
     });
Hi du,

ich sehe gerade du willst Tabelleninhalt colorieren und nicht Textinhalt. Also dafür hat Lars Vogel ein sehr gutes Beispiel dazu geschrieben, ziemlich ausführlich sogar Link. Schau mal unter
2.5. StyledCellLabelProvider and OwnerDrawLabelProvider

Grüße
lam

P.S. Was ich vor allem viel cooler finde, wenn du die Suche beim Eintippen schon startest, anstatt jedes mal auf den Button zu klicken, das wird im Beispiel auch gezeigt.
 
Zuletzt bearbeitet:
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben