Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    813

    [risolto] drawString non funziona

    ciao a tutti.
    ho il seguente metodo che dovrebbe mettere del testo in una immagine:

    codice:
    public Image render()
    	{
    		int x,y=0,w;
    		
    		BufferedImage img = new BufferedImage(getSize().width, getSize().height, BufferedImage.TYPE_INT_ARGB);
    		Graphics2D gr = (Graphics2D)img.getGraphics();
    		
    		FontMetrics metric = gr.getFontMetrics();
    		w = metric.stringWidth(getText());
    		
    		switch (getAlignment())
    		{
    			case ALIGNMENT_CENTER:x=getSize().width/2 - w/2; break;
    			case ALIGNMENT_RIGHT:x=getSize().width - w; break;
    			default:x=0;	
    		}
    		
    		gr.setColor(Color.BLUE);
    		gr.drawRect(0, 0, 10, 10);
    		gr.setColor(Color.BLACK);
    		gr.drawString("mio testo prova", 0, 0);
    		
    		gr.dispose();
    		return img;
    	}
    il problema è che non stampa il testo neanche a sentirne. Ho provato di tutto ma niente.
    come vedete nel codice, al fine di vedere se tutto va bene, il rettangolo blu lo disegna, ma del testo neanche l'ombra.
    ho trovato in giro questo: http://www.java-forums.org/advanced-...ork-linux.html

    ho quindi installato eclipse su windows e fortunatamente (o sfortunamente) non va.

    cosa dovrei fare?
    vi ringrazio anticipatamente per la collaborazione
    Nell'anno 1968 è bastata la potenza di due Commodore 64 per lanciare con successo una navicella sulla Luna; nell'anno 2007 ci vogliono la potenza di un processore quad core 3.30 GHz e 3 Gb di RAM (requisiti minimi ufficiali) per utilizzare Windows Vista. Qualcosa deve essere andato storto!

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    813
    ho risolto
    non sapevo questa cosa che ho trovato sulla javadoc
    The baseline of the leftmost character is at position (x, y) in this graphics context's coordinate system.
    Nell'anno 1968 è bastata la potenza di due Commodore 64 per lanciare con successo una navicella sulla Luna; nell'anno 2007 ci vogliono la potenza di un processore quad core 3.30 GHz e 3 Gb di RAM (requisiti minimi ufficiali) per utilizzare Windows Vista. Qualcosa deve essere andato storto!

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Hysoka
    non sapevo questa cosa che ho trovato sulla javadoc
    Il punto è appunto sul baseline, vedi Baseline_(typography).
    Se vuoi che il punto sia qualcos'altro devi calcolartelo tu usando il "ascent", "descent" e gli altri dati della metrica del font.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.