Visualizzazione dei risultati da 1 a 7 su 7

Discussione: [java] JTable

  1. #1

    [java] JTable

    ciao raga

    devo stampare una tabella contenuta in un pannello con il metodo print(). Prima di stampare combio i font , ma non voglio che vengano cambiati anche a video. ho creato una funzione contenente la stampa e le modifiche della tabella a cui passo la tabella da stampare.
    Ma cambia lo stesso, perchè passo il riferimento alla tabella e non un oggetto nuovo uguale alla tabella da stampare.

    come faccio?

    ciao grazie

  2. #2
    in poche parole devo creare una copia indipendente dell'oggetto JTable. come posso fare?

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da fcorsa
    in poche parole devo creare una copia indipendente dell'oggetto JTable. come posso fare?
    Visto che i dati sono nel model ... non in JTable, nessuno ti vieta di istanziare un nuovo JTable assegnandogli lo stesso identico oggetto model della tabella "a video". Questo nuovo JTable ovviamente non lo inserirai in un contenitore visibile. Cambi font, dimensioni ecc.... quindi lo stampi.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    Andbin ci ho provato ma mi stampa una tabella vuota.

    ecco il codice

    codice:
    public class StampaTabella {
    
    	public void StampaTabella(JTable table2,String mess) throws PrinterException{
    		TableModel mod = table2.getModel();
    		
    		JTable table = new JTable(mod);
    		JTableHeader th =new JTableHeader();
    		th= table.getTableHeader();
    		Font font = new Font("Arial",Font.PLAIN,25);
    		Font font2 = new Font("Arial",Font.BOLD,20);
    		th.setFont(font2);
    		Dimension din = new Dimension();
    		din.setSize(0, 25);
    		th.setPreferredSize(din);
    		th.setForeground(Color.GRAY);
    		table.setTableHeader(th);
    		table.setRowHeight(25);
    		table.setFont(font);
    		
    		table.print(JTable.PrintMode.FIT_WIDTH,new MessageFormat(mess),new MessageFormat("Page - {0}"));
    }
    }

  5. #5
    però devo aggiungere che le mie tabelle utilizzano un modello che estende AbstractTableModel.
    sarà questo il problema?

    public class ModelloTabella extends AbstractTableModel

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da fcorsa
    ci ho provato ma mi stampa una tabella vuota.

    però devo aggiungere che le mie tabelle utilizzano un modello che estende AbstractTableModel.
    sarà questo il problema?
    No, un model è un model. "Espone" solo i dati al resto del "mondo". Come è implementato non importa (a JTable).

    Mi sta venendo il dubbio che la tabella debba forse essere visualizzata e/o dimensionata (con un preferred size). (?) Ma non avendolo mai fatto (appena ho un momento ci provo) non so dire di preciso.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Il problema è che la JTable deve essere per forza visualizzata a video.
    Purtroppo mi è sembrato di capire che se una JTable non è
    visualizzata a video, non può essere stampata
    (ho provato costruendo solo la JTable senza aggiungerla all'interfaccia grafica e mi viene stampato solo un riquadro vuoto con i bordi neri).

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.