Dúvida iniciante JAVA

6 respostas
B

Boa tarde, estou criando um programa em JAVA, sou novo nessa área, algum de vocês poderiam me ajudar respondendo a seguinte questão?
Eu gostaria de fazer uma espécie de “google” dentro do programa, onde que o usuário digita o comecinho de uma frase e assim puxa as informações que quero mostrá-lo, como textos, frases, informações, etc ou apenas mostrá-las como um site apresenta um texto, onde que através do scroll do mouse você pode navegar.
Essas informações que quero puxar/mostrar são imagens ou textos nos blocos de nota.

Quero fazer isso para não ter que criar vários e vários JFrames, será que tem como? ou tem que criar todos eles? Seriam mais de 300!

Obrigado, abraços.

6 Respostas

gbrvalerio
package autocompletetext;

import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.TextField;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;

/**
 *
 * @author gbrvalerio
 */
public class AutoCompleteText extends Application {
    
    private final String WINDOW_TITLE       = "TextBox AutoComplete";
    
    private final String[] lista = {"teste",
                                    "ronaldo",
                                    "crisvaldo"};
    
    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle(WINDOW_TITLE);
        primaryStage.setWidth(250);
        primaryStage.setHeight(150);
        
        GridPane        layout = new GridPane();
        layout.setAlignment(Pos.CENTER);
        layout.setVgap(10);
        layout.setHgap(10);
        layout.setPadding(new Insets(30));
        
        TextField txt_toComplete = new TextField();
        txt_toComplete.setOnKeyReleased((KeyEvent event) ->{
            event.consume();
            
            String digitado   = txt_toComplete.getText();
            String selecionado = txt_toComplete.getSelectedText();
            
            if(!selecionado.isEmpty()) digitado = digitado.substring(0, digitado.length() - selecionado.length());
            
            String toComplete = looksFor(digitado);
            
            if(toComplete != null && !event.getCode().equals(KeyCode.BACK_SPACE)) {
                txt_toComplete.setText(toComplete);
                txt_toComplete.selectRange(digitado.length(), toComplete.length());
            }
        });
                
        layout.add(txt_toComplete, 0, 0);
        
        Scene scene = new Scene(layout);
        
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        launch(args);
    }
    
    private String looksFor(String entry){
        for(String onList : lista){
            if(onList.toLowerCase().startsWith(entry.toLowerCase())) return onList;
        }
        return null;
    }
    
}

tá ai um código bem grotesco mas a ideia é basicamente essa, só mudar de onde ele vai verificar o que voce ta digitando pra ele dar um autocomplete

B

Pois é, mas eu uso o NetBeans, eu não manjo de todos esses códigos rs. Como eu poderia pesquisar isso no Google para poder me ajudar nisso? Basicamente esse código eu não entendo ainda, nem sei onde por e tudo mais :confused:

TEC.ER

voce ta usando qual tecnologia man, swing ou javafx ?

B

Boa noite amigo, estou usando Swing, todas as janelas já estão prontas.

gbrvalerio

tem repo online? ajudaria dar uma olhada no código e eu poderia até dar uma ajudada

B

É bem simples, só fiz as Janelas JFrame com o swing.

Criado 14 de fevereiro de 2016
Ultima resposta 16 de fev. de 2016
Respostas 6
Participantes 3