|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Sep 2004
Città: Sardegna
Messaggi: 98
|
[RISOLTO] [JAVA] JLabel che non si sposta!!
Ciao a tutti! Un'altra incognita nel mio progetto, una cosa che non riesco a spiegarmi:
Creo una JLabel e la carico sopra un JFrame, setto le coordinate di comparsa del JLabel in un determinato punto, ma invece me lo visualizza in un'altro punto! Qualsiasi coordinate gli setti alla JLabel questa rimane fissa nello stesso punto! Vi posto un po di codice: Codice:
----------------------------------
//Sono nel costruttore della classe: qua inizializzo tutte le variabili
//Assegno un nuovo riferimento alla mia JLabel
labelPunti = new JLabel();
//Setto il mio Font:
labelPunti.setFont(new Font(labelPunti.getFont().getName(),Font.BOLD,20));
labelPunti.setBackground(Color.red); //Imposto colore di sfondo della JLabel
//POSIZIONO LA LABEL IN QUESTE COORDINATE (ma anche cambiandole non
//risolvo niente!!!!)
labelPunti.setBounds(400, 400, 100, 200);
//Aggiungo la JLabel sopra il mio frame
frame.add(labelPunti, JLayeredPane.PALETTE_LAYER);
-----------------------------------
//In questo metodo ad ogni iterazione del ciclo while disegno nuovamente la
//JLabel e altri elementi nel JFrame:
while(gameRunning)
{
Graphics2D g = (Graphics2D) strategy.getDrawGraphics();
// clear the screen
g.setColor(Color.black);
g.fillRect(0,0,1024,768); //A tutto schermo
// render our game objects
g.translate(0, 30); //Sposto l'oggetto grafico principale che dovrò disegnare
g.setColor(Color.red);
//Aggiorno il valore del punteggio nella JLabel, settando il nuovo testo
labelPunti.setText("PUNTI" + punteggio);
labelPunti.paint(g);
.........//Eseguo qua le altre funzioni del ciclo
}
Ultima modifica di caralu : 11-09-2006 alle 12:31. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Non tutti i layout permettono di posizionare gli oggetti a coordinate assolute. Nel tuo caso è probbaile che i layout che usi quindi non lo permette.
Comunque hai fatto un po' si pasticci, richiami il metodo paint di un Jlabel, perchè? Poi usi un componente swing con componenti awt, ti consiglio di togliere la jlabel e di scrivere i tuoi punteggi con: Codice:
g.drawString("PUNTI" + punteggio,400,400);
|
|
|
|
|
|
#3 | |
|
Member
Iscritto dal: Sep 2004
Città: Sardegna
Messaggi: 98
|
Quote:
|
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
certo g.setFont(Font);
|
|
|
|
|
|
#5 | |
|
Member
Iscritto dal: Sep 2004
Città: Sardegna
Messaggi: 98
|
Quote:
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:51.



















