Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Le soluzioni FSP per il 2026: potenza e IA al centro
Le soluzioni FSP per il 2026: potenza e IA al centro
In occasione del Tech Tour 2025 della European Hardware Association abbiamo incontrato a Taiwan FSP, azienda impegnata nella produzione di alimentatori, chassis e soluzioni di raffreddamento tanto per clienti OEM come a proprio marchio. Potenze sempre più elevate negli alimentatori per far fronte alle necessità delle elaborazioni di intelligenza artificiale.
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa
AWS è il principale operatore di servizi cloud al mondo e da tempo parla delle misure che mette in atto per garantire una maggiore sovranità alle organizzazioni europee. L'azienda ha ora lanciato AWS European Sovereign Cloud, una soluzione specificamente progettata per essere separata e distinta dal cloud "normale" e offrire maggiori tutele e garanzie di sovranità
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto
Xiaomi ha portato sul mercato internazionale la nuova serie Redmi Note, che rappresenta spesso una delle migliori scelte per chi non vuole spendere molto. Il modello 15 Pro+ punta tutto su una batteria capiente e su un ampio display luminoso, sacrificando qualcosa in termini di potenza bruta e velocità di ricarica
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 09-11-2013, 18:49   #1
Simox88
Junior Member
 
Iscritto dal: Nov 2010
Messaggi: 17
[Java] aiuto su funzione trova / trova successivo

Salve,

E da molto che per mancanza di tempo non scrivo su questo forum, cmq, scrivo perché ho un problema in un mio progetto.

Sto provando a fare creare la funzione trova successivo quella presente negli editor, avete presente? per verificare il corretto funzionamento, senza nessun altro codice che non serviva allo scopo, ho creato un'altro progetto, con questo sorgente:

Codice:
import javax.swing.*;
 
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
 
class GUI extends JFrame {
        private JTextField textField = null;
        private JTextPane textPane = null;
        private JButton button = null;
        private int index = -1;
       
        public GUI() {
                setLayout(new BorderLayout());
                setVisible(true);
               
                JPanel topPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
                textField = new JTextField(15);
                button = new JButton("Trova / trova successivo");
                textPane = new JTextPane();
               
                topPanel.add(textField);
                topPanel.add(button);
               
                add(topPanel, BorderLayout.NORTH);             
                add(textPane, BorderLayout.CENTER);
               
                button.addMouseListener(new MouseListener() {
 
                        @Override
                        public void mouseClicked(MouseEvent arg0) {
                                String originText = textPane.getText();
                String findWord = textField.getText();
               
                if (index != -1) {
                   index = originText.indexOf(findWord, index + findWord.length());
                }else {
                   index = originText.indexOf(findWord);
                }
               
               
               
                if (index == -1) {
                       JOptionPane.showMessageDialog(null, "Nessuna occorrenza trovata");
                }else {
                   textPane.grabFocus();
                   textPane.select(index, index + findWord.length());
                   
                   JOptionPane.showMessageDialog(null, "Elemento trovato\n\nStart selection = " + index);
                }
                               
                        }
 
                        @Override
                        public void mouseEntered(MouseEvent arg0) {
                                // TODO Auto-generated method stub
                               
                        }
 
                        @Override
                        public void mouseExited(MouseEvent arg0) {
                                // TODO Auto-generated method stub
                               
                        }
 
                        @Override
                        public void mousePressed(MouseEvent arg0) {
                                // TODO Auto-generated method stub
                               
                        }
 
                        @Override
                        public void mouseReleased(MouseEvent arg0) {
                                // TODO Auto-generated method stub
                               
                        }
                       
                });
        }
}
 
public class es1 {
        public static void main(String[] args) {
                new GUI();
        }
}
Se eseguo il codice e premo il pulsante trova / trova successivo mi dovrebbe ricercare, all'interno dell'oggetto textPane ( una JTextPane ) il testo contenuto nella JTextField, è sottolinearmi il testo trovato, a partire dalla prima occorrenza e poi.

Ora, il problema è che: la parola trovata mi viene effettivamente evidenziata correttamente, il problema è, che quando la parola da trovare si trova oltre la prima riga me la trova, ma sottolineandomi altro ( ad esempio saltando la prima lettero, o saltando la prima lettera e evidenziando anche il caratteri successivo ) insomma mi evidenzia male, se volete potete eseguire il codice per verificare il problema.

Ho pensato, forse è un problema causato dal carattere ritorno a capo? o pensato, potrei eseguire la funzione per ogni riga, ma non saprei, c'è un'altro modo per risolvere?
Simox88 è offline   Rispondi citando il messaggio o parte di esso
Old 10-11-2013, 19:19   #2
corin77
Member
 
Iscritto dal: Oct 2009
Messaggi: 41
Ciao, la tua intuizione non è sbagliata. Infatti il problema è causato proprio del carattere '\n', ovvero il ritorno a capo. Quando effettui la ricerca dell'indice nella stringa con il metodo indexof(..), elabori la stringa a basso livello diciamo, conteggiando tutti i caratteri e di conseguenza anche quelli di spazio e riporto a capo. Nella selezione nella JTextPane invece la cosa avviene ad alto livello e quindi il ritorno non viene conteggiato.

Ti mostro una soluzione rapida anche se non proprio efficiente:
@Override
public void mouseClicked(MouseEvent arg0) {
String originText = textPane.getText().replace("\n", "");
In questo modo elimini i ritorno a capo dalla stringa alla ricerca dell'indice.
Fammi sapere se ti va
corin77 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Le soluzioni FSP per il 2026: potenza e IA al centro Le soluzioni FSP per il 2026: potenza e IA al ce...
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa AWS annuncia European Sovereign Cloud, il cloud ...
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto Redmi Note 15 Pro+ 5G: autonomia monstre e displ...
HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione HONOR Magic 8 Pro: ecco il primo TOP del 2026! L...
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata Insta360 Link 2 Pro e 2C Pro: le webcam 4K che t...
Apple contro Intel e AMD: i numeri che r...
Il facelift di Volkswagen ID.4 sembra un...
Pokémon arriva negli Universal St...
Attenzione al nuovo malware per Android:...
Netatmo aggiorna riscaldamento e sicurez...
Netflix punterà sempre più...
Un futuro pieno di schifezze fatte dall'...
CATL svela la batteria al sodio che pu&o...
Apple è in difficoltà con ...
Apple starebbe lavorando ad un 'Pin inte...
Sedie da ufficio di qualità a prezzi bas...
Mercedes-AMG svela la nuova F1: conferma...
Europa: nel 2025 le principali fonti di ...
Outlook inutilizzabile su Windows 11: Mi...
Acer Predator Helios 18 AI, un portatile...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 14:35.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v