filly85 (Normal User)
Newbie
Messaggi: 15
Iscritto: 01/02/2008
|
Ciao spero che qualcuno mi sappia aiutare.
sto sviluppando il gioco snake...
per visualizzare la guida ho fatto una jdialog che carica da file il testo e lo mette a video.come faccio a cambiare il carattere,le dim?e poi quando il testo viene visualizzato appare il cursore il quale fa aggiungere del testo o cancellarlo.come fare x visualizzare il testo e basta?
Grazieeeeeeeeeeeee!!!
|
|
netarrow (Admin)
Guru^2
Messaggi: 2502
Iscritto: 12/05/2004
|
per evitare che il testo sia modificato deiv usare il metodo
field.setEnabled(false)
o
field.setEditable(false)
per cambiare i font e le altre caratteristiche del testo potresti usare un JEditorPane con il content type impostato su text/html e inserire codice html per impostare l'aspetto del testo.
Qui hai un tutorial si Sun: http://java.sun.com/docs/books/tutorial/uiswing/components ...
Ultima modifica effettuata da netarrow il 02/02/2008 alle 15:55 |
|
filly85 (Normal User)
Newbie
Messaggi: 15
Iscritto: 01/02/2008
|
grazie.con questo metodo però il pulsante x non chiude la dialog,devo aggiungere un bottone per farla chiudere o c'è qualche altro metodo x gestire?
inoltre,per dimensionare il testo all interno della dialog come si fa?alcuni pezzi di testo non si leggono.grazieeeeee!
|
|
netarrow (Admin)
Guru^2
Messaggi: 2502
Iscritto: 12/05/2004
|
|
|
filly85 (Normal User)
Newbie
Messaggi: 15
Iscritto: 01/02/2008
|
ma il x setDEfaultCloseOperation devo fare un funzione a parte nella classe Jdialog oppure richiamare come funz gia esistente?il pezzo di codice della dialog è questo,dimmi come fare.grazie
public class DialogFinestraGuida extends JDialog
{
private static final long serialVersionUID = 1L;
private JTextArea areaTesto;
private GiocoSnake giocoSnake;
public DialogFinestraGuida(GiocoSnake giocoS)
{
this.giocoSnake=giocoS;
this.setModal(false);
this.setSize(800,500);
this.setLocation(0,0);
this.setTitle("Guida Snake");
this.setEnabled(false); //toglie il cursore nell'area testo
JPanel principale=new JPanel();
principale.setBackground(Color.green);
principale.setLayout(new BorderLayout());
areaTesto=new JTextArea();
areaTesto.setBackground(Color.green);
areaTesto.setFont(new Font("Serif", Font.LAYOUT_LEFT_TO_RIGHT, 16));
principale.add(areaTesto,BorderLayout.CENTER);
areaTesto.append(giocoSnake.visualizzaGuida());
this.getContentPane().add(principale);
this.setVisible(true);
}
}
Grazie!!!!
|
|
netarrow (Admin)
Guru^2
Messaggi: 2502
Iscritto: 12/05/2004
|
no basta che richiami il metodo setDefaultCloseOperation e gli passi DISPOSE_ON_CLOSE (la costante è memorizzata come campo statico della classe JDialog)
Ultima modifica effettuata da netarrow il 04/02/2008 alle 11:00 |
|
filly85 (Normal User)
Newbie
Messaggi: 15
Iscritto: 01/02/2008
|
Grazie, avevo già provato cosi ma non si chiude la dialog.Ho provato cosi,senza this.bla bla...,setCloseOperatio(DISPOSE_ON_CLOSE);
Uffa....!un altra cosa,il testo viene tagliato poiche è + grande della finestra dialog,devo fare uno scrollpane con un pannello su con una area di testo?
grazie 1000!
|
|
netarrow (Admin)
Guru^2
Messaggi: 2502
Iscritto: 12/05/2004
|
per le scroll devi inserire la TextArea dentro un JScrollPane.
Per la chiusura questo devi scrivere nel costruttore della jDialog:
this.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
se no prova un HIDE_ON_CLOSE ma la JDialog sarà solo invisibile e continuerà a occupare memoria.
ah, per le scroll si potrebbe usare anche setLineWrap a true per andare a capo automaticamente
Ultima modifica effettuata da netarrow il 04/02/2008 alle 11:48 |
|
filly85 (Normal User)
Newbie
Messaggi: 15
Iscritto: 01/02/2008
|
Che nervoso non mi funziona................dai una occhiata se ho sbagliato qualcosa.
public class DialogFinestraGuida extends JDialog
{
private static final long serialVersionUID = 1L;
private JTextArea areaTesto;
private GiocoSnake giocoSnake;
private JPanel PannelloGuida;
private JScrollPane scrollPane;
public DialogFinestraGuida(GiocoSnake giocoS)
{
this.giocoSnake=giocoS;
this.setModal(false);
this.setSize(800,500);
this.setLocation(0,0);
this.setTitle("Guida Snake");
this.setEnabled(false); //toglie il cursore nell'area testo
this.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
JPanel principale=new JPanel();
principale.setLayout(new BorderLayout());
PannelloGuida = new JPanel(new GridLayout(800,500));
PannelloGuida.setBackground(Color.green);
scrollPane = new JScrollPane(PannelloGuida);
scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
areaTesto=new JTextArea();
areaTesto.setBackground(Color.green);
areaTesto.setFont(new Font("Serif", Font.LAYOUT_LEFT_TO_RIGHT, 16));
areaTesto.append(giocoSnake.visualizzaGuida());
PannelloGuida.add(areaTesto);
principale.add(BorderLayout.CENTER,scrollPane);
this.getContentPane().add(principale);
this.setVisible(true);
}
}
Grazie e scusa!!!
|
|