Buongiorno a tutti,
sono nuovo del forum, appena iscritto, ma volevo subito chiedervi un aiuto, stavo pensando di sviluppare in Java un programma che ricevute una serie di parole chiave facesse una ricerca in Google e aprisse i primi 10 risultati che emergono dalla ricerca. Fin'ora ho scritto la parte del codice che si occupa dell'interfaccia grafica, e della ricerca delle parole chiave, inserite dall'utente, in Google; fatto questo però mi sono bloccato perché non riesco a trovare un modo per dire a Java di aprire i primi 10 risultati della ricerca. Avete qualche idea o suggerimento?
Di seguito vi allego il sorgente del programma scritto fin'ora...
codice:
package com.mkyong;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import java.net.URLConnection;
import java.awt.Desktop;
@SuppressWarnings("serial")
public class WebSearch extends JFrame {
JPanel titolo = new JPanel();
JPanel centro = new JPanel();
JPanel invio = new JPanel();
JLabel title = new JLabel("WebSearch");
JLabel instr = new JLabel("Inserisci le parole chiave della ricerca:");
static JTextField inputText = new JTextField(100);
public static Image icon = Toolkit.getDefaultToolkit().getImage("C:\\Users\\Samuele\\Desktop\\Progetti\\WebSerch\\Icona.png");
public static Image img;
JButton ricerca = new JButton("Ricerca");
Ascoltatore listener = new Ascoltatore();
public static String url;
//Costruttore della classe
public WebSearch ()
{
super("WebSearch");
setIconImage(icon);
setResizable(false);
setSize(350,300);
setLocation(500,200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
getContentPane().add(titolo, BorderLayout.NORTH);
getContentPane().add(centro, BorderLayout.CENTER);
getContentPane().add(invio, BorderLayout.SOUTH);
centro.setLayout(new GridLayout(8,1));
titolo.add(title);
centro.add(instr);
centro.add(inputText);
invio.add(ricerca);
ricerca.addActionListener(listener);
}
//Metodo che si occupa della ricerca delle parole chiave all'interno di Google
private static void ricerca() throws IOException, URISyntaxException
{
String parole = inputText.getText();
String out ="";
for(int i=0; i<parole.length(); i++){
if (parole.charAt(i)!=' '){
out += parole.charAt(i);
}
else if (parole.charAt(i)==' '){
out += "+";
}
}
url = "https://www.google.com/#q=" + out ;
URI ricerca = new URI(url);
Desktop.getDesktop().browse(ricerca);
}
//Classe dell'ascoltatore
public class Ascoltatore implements ActionListener {
public void actionPerformed(ActionEvent event) {
JButton b = (JButton)event.getSource();
if (b==ricerca)
try {
ricerca();
download();
} catch (IOException | URISyntaxException e) {}
}
}
//main
public static void main (String [] args){
new WebSearch();
}
}
Con questo codice l'utente inserisce le parole chiave della ricerca ed il programma apre una nuova scheda del Browser con i risultati della ricerca, mentre io vorrei mi aprisse i primi 10 risultati della ricerca ognuno in una nuova scheda. Come posso fare?
Vi ringrazio anticipatamente per tutte le vostre risposte
Buona Giornata
Orion Bartowsky