Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di Mon91
    Registrato dal
    Jul 2013
    Messaggi
    52

    [Java] integrare/mostrare in html mia JTable

    BUONGIORNO!
    Vorrei inserire nel sito che sto creando la tabella che ho postato. Un BufferedReader legge le righe di un semplice file di testo e riempe le colonne in questo modo:

    nome indirizzo telefono
    Casamercato; Alseno (Pc) 118, V. Roma; Tel: 0523 945911
    Naturasi'; Piacenza (Pc) 70, V. Conciliazione; Tel: 0534 609769
    Al.Fi Srl; Rottofreno (Pc) 5, Via Curiel S.Nicolo'; Tel: 0523 763077
    Al.Fi Srl; Piacenza (Pc) 31, Viale S. Ambrogio; Tel: 0523 305512

    La mia domanda è: come posso fare a integrarla dentro la mia pagina web? ho due idee:devo copiare il codice della tabella dentro la pagina all'interno dei tag <% %> oppure devo trasferire il file.class del codice della tabella dentro la cartella WEB-INF di apache tomcat assieme al file di testo? La mia esigenza è soltanto quella di mostare la mia tabella ai visitatori.
    Parlo da persona con un infarinamento di html e css che da poco si è avvicinata alla programmazione Java e vuole imparare.

    Posto il codice della jTable:

    codice:
    import java.awt.Dimension;
    import java.io.BufferedReader;
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.Vector;
    
    import javax.swing.JFrame;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.table.DefaultTableColumnModel;
    import javax.swing.table.DefaultTableModel;
    import javax.swing.table.TableColumn;
    
    class TableExample extends JFrame {
    	static ArrayList<String> indirizzi= new ArrayList<String>();
    	public static void leggi_txt(){
    		try{
    			String file= new String("DB.txt");
    			BufferedReader br = new BufferedReader(new FileReader(file));
    			String line;
    			while((line=br.readLine())!=null){
    				
    				String [] w=line.split(";");
    				String nome=w[0].trim();
    				String localita=w[1].trim();
    				String telefono=w[2].trim();
    				
    				indirizzi.add(nome);
    				indirizzi.add(localita);
    				indirizzi.add(telefono);		
    				
    				
    			}br.close();
    
    
    		}catch(IOException e){
    			e.printStackTrace();
    			System.exit(1);
    
    		}}
    
    	TableExample() {
    		super("Address Book");
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		///////////////////////////////////////////////
    		// n° di righe
    		int rows = 202;
    		// n° di colonne
    		int columns = 3;
    		// etichette colonne
    		String[] labels = {"nome", "indirizzo", "telefono"};
    		// larghezza colonne
    		int[] widths = {50, 70, 120};
    		// vettore dati tabella
    		Vector data = new Vector(0, 1);
    		// vettore colonne tabella
    		Vector columnNames = new Vector(0, 1);
    		// popolo la tabella
    		for(int i = 0; i < rows; i++) {
    			// vettore singola riga tabella
    			Vector row = new Vector();
    			for(int j = 0; j < columns; j++) {
    				
    				row.addElement(" " + indirizzi.get(3 * i + j));
    			}
    			data.addElement(row);
    		}
    		// intestazioni colonne
    		for(int i = 0; i < columns; i++) {
    			columnNames.addElement(labels[i]);
    		}
    		// modello dati della tabella
    		DefaultTableModel tableModel = new DefaultTableModel(data, columnNames);
    		// modello attributi delle colonne
    		DefaultTableColumnModel columnModel = new DefaultTableColumnModel();
    		for(int i = 0; i < columns; i++) {
    			// modello attributi colonna singola
    			TableColumn column = new TableColumn(i, widths[i]);
    			column.setHeaderValue(labels[i]);
    			columnModel.addColumn(column);
    		}
    		// la tabella
    		JTable table = new JTable(tableModel, columnModel);
    		table.setPreferredScrollableViewportSize(new Dimension(350, 100));
    		JScrollPane scroll = new JScrollPane(table);
    		///////////////////////////////////////////////////
    		getContentPane().add(scroll);
    		pack();
    		setVisible(true);
    	}
    
    	public static void main(String[] args) {
    		leggi_txt();
    		new TableExample();
    	}}
    Linko una vekkia discussione: non so se possa fare al caso mio.
    http://forum.html.it/forum/showthread/t-194635.html
    Grazie dell'attenzione.

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Sono 2 problematiche completamente diverse. Lì si parla di stampa fisica, su carta per intenderci, tu vuoi visualizzare la tua tabella in una pagina jsp.

    Hai 2 strade:
    La prima, che non ti consiglio perché costringi l'utente ad avere la JRE installata (con le limitazioni per palmari/dispositivi portatili): crei un applet e mostri la JTable nell'applet.

    La seconda: produci il codice html necessario a partire dal file di testo (né più né meno di quanto tu stia già facendo, ma invece di aggiungere righe parsate ad una JTable, aggiungi "tr" e "td" ad un tag table html)
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [Java] integrare/mostrare in html mia JTable

    Originariamente inviato da Mon91
    La mia domanda è: come posso fare a integrarla dentro la mia pagina web?
    Una soluzione è creare una "applet" Java. Non so se le conosci oppure no. Una applet ha una filosofia e un "ciclo di vita" ben diverso da una applicazione "desktop". Innanzitutto non parte con il classico main(String[]). Inoltre la applet "gira" sul client e a meno di smanettare sul JRE o di "firmare" digitalmente la applet, essa non può accedere ad un file-system, quindi non puoi usare un FileReader o altro per leggere da un file.

    Insomma, la gestione della tua tabella andrebbe ripensata un po'.

    Originariamente inviato da Mon91
    devo copiare il codice della tabella dentro la pagina all'interno dei tag <% %>
    No, perché questo viene eseguito sul server. Il client non "vedrebbe" alcuna JTable!

    Originariamente inviato da Mon91
    oppure devo trasferire il file.class del codice della tabella dentro la cartella WEB-INF di apache tomcat assieme al file di testo?
    Tutto ciò che è sotto WEB-INF è "visibile" solo dalla web-application sul server ... non dal client. Quindi lì non sarebbe utile per una applet.

    Originariamente inviato da Mon91
    La mia esigenza è soltanto quella di mostare la mia tabella ai visitatori.
    Parlo da persona con un infarinamento di html e css che da poco si è avvicinata alla programmazione Java e vuole imparare.
    Se hai una webapp Java che gira almeno su un servlet-container (es. Tomcat) potresti anche generare la pagina web HTML con i vari <table>, <td> ecc... insomma una pura tabella HTML.
    Questo comporta l'uso di una servlet e/o JSP. E dovresti comunque cambiare un po' le cose, perlomeno separarle bene (se vuoi riutilizzare il codice anche su app "desktop"). Però in teoria un TableModel potresti anche sfruttarlo, per prendere i dati quando generi la tabella HTML.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    Utente di HTML.it L'avatar di Mon91
    Registrato dal
    Jul 2013
    Messaggi
    52
    Grazie ragazzi per le informazioni!
    CHIUDETE PURE

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.