|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 | |
|
Senior Member
Iscritto dal: May 2004
Messaggi: 727
|
[Java]Bottone che non mostra il testo
Ciao a tutti.
Sto realizzando in Java un bottone con le seguenti caratteristiche : - presenta un'immagine di sfondo in grado di autoridimensionarsi sulla base della dimensione del bottone - mostra il nome del bottone sia all'interno del bottone stesso che come tooltip Il problema è che la classe che ho realizzato, quando viene eseguita, mostra l'immagine all'interno del bottone ma fà sparire il testo all'interno dello stesso. Qualcuno sa dirmi dove sbaglio? Ecco il codice che ho realizzato : Quote:
Ultima modifica di Voltron : 13-04-2012 alle 18:47. |
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: May 2004
Messaggi: 727
|
Nessuna idea? Nemmeno da quelli che fanno le guide swing...? Sto messo male allora.
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
super.paint disegna il pulsante (testo incluso).
Poi col drawImage ci disegni sopra. Quindi non vedi il testo. Si chiama algoritmo del pittore (ogni istruzione di disegno è come una pennellata che copre la precedente). Puoi disegnare prima l'icona e poi super.paint però a seconda delle impostazioni del pulsante e del look and feel è possibile che ti capiti l'inverso: si vede il pulsante ma non l'immagine. Vai a colpo sicuro se usi Icon (l'interfaccia). Imposti l'allineamento del testo del pulsante rispetto all'icona a center (dovrebbe essere button.setHorizontalTextPosition) così la tua icona risulterà disegnata sotto al testo. Un Icon è disegnato invocando il suo metodo paintIcon, il metodo riceve come primo argomento il componente a cui appartiene il Graphics da usare per riprodurre l'icona. Con quell'argomento Component puoi determinare la grandezza dell'immagine da disegnare, ottenendo la tua icona le cui dimensioni si adattano a quelle del pulsante.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#4 | ||
|
Senior Member
Iscritto dal: May 2004
Messaggi: 727
|
Intanto ti ringrazio per l'esaustiva risposta!
Ho provato ad inverirtire le istruzioni 'paint' e 'drawimage' : Quote:
Ho anche provato ad usare 'Icon' in questo modo : Quote:
|
||
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Voilà:
Codice:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package test;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
public class Test {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
Test.start();
}
});
}
private static void start() {
final Image image = new ImageIcon(Test.class.getResource("/icon.png")).getImage();;
final Icon resizableIcon = new Icon() {
@Override
public void paintIcon(Component c, Graphics g, int x, int y) {
g.drawImage(image, 0, 0, c.getWidth(), c.getHeight(), null);
}
@Override
public int getIconWidth() {
return image.getWidth(null);
}
@Override
public int getIconHeight() {
return image.getHeight(null);
}
};
JFrame win = new JFrame("Hello");
win.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
JButton button = new JButton("Press me!");
button.setHorizontalTextPosition(JButton.CENTER);
button.setIcon(resizableIcon);
win.add(button);
win.pack();
win.setVisible(true);
}
}
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: May 2004
Messaggi: 727
|
Sei un Grande!! Funziona!!
Poichè ho l'esigenza di creare un mio oggetto bottone, ho implementato il tutto così : Quote:
Ultima modifica di Voltron : 16-04-2012 alle 09:35. |
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: May 2004
Messaggi: 727
|
Al fine di aiutare tutti coloro che possano avere bisogno di un bottone che contenga una immagine di sfondo + del testo e che si autoridimensioni sulla base del testo inserito al suo interno, posto il codice che ho realizzato :
Quote:
Ringrazio ancora l'utente 'PGI-Bis' per il suo prezioso contributo senza il quale starei ancora brancolando nel buio. Ultima modifica di Voltron : 16-04-2012 alle 10:22. |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:53.



















