netarrow (Admin)
Guru^2
Messaggi: 2502
Iscritto: 12/05/2004
|
intendevo di fare un tentativo con versioni anche pių vecchie tipo la 1.4.
Per il paint basta che lo togli dalla tua classe e lo sposti dentro il paintComponent di un JPanel, come viene fatto nell'esempio che ti ho linkato qualche post fa.
|
|
The Lizard King (Member)
Rookie
Messaggi: 33
Iscritto: 10/06/2007
|
Postato originariamente da netarrow:
intendevo di fare un tentativo con versioni anche pių vecchie tipo la 1.4.
Per il paint basta che lo togli dalla tua classe e lo sposti dentro il paintComponent di un JPanel, come viene fatto nell'esempio che ti ho linkato qualche post fa. |
Scusa ma non ho capito bene come fare... negli esempi del link che mi hai dato ho visto solo applet che non mi partono se avvio da console o_O |
|
netarrow (Admin)
Guru^2
Messaggi: 2502
Iscritto: 12/05/2004
|
Codice sorgente - presumibilmente Java |
import java.awt.*; import javax.swing.*; class Display extends JPanel { super.paintComponent(g); g.drawString("CiaoATutti",5,25); } } }
|
e poi inserisci il pannello nella finestra.
Ultima modifica effettuata da netarrow il 27/01/2008 alle 11:55 |
|
The Lizard King (Member)
Rookie
Messaggi: 33
Iscritto: 10/06/2007
|
Postato originariamente da netarrow:
Codice sorgente - presumibilmente Java |
import java.awt.*; import javax.swing.*; class Display extends JPanel { super.paintComponent(g); g.drawString("CiaoATutti",5,25); } } }
|
e poi inserisci il pannello nella finestra. |
Ho provato cosė ma mi da errore:
Codice sorgente - presumibilmente Java |
import java.awt.*; import javax.swing.*; { public Display() { paintComponent(); } { super.paintComponent(g); g.drawString("CiaoATutti",5,25); } public static void main (String[] args ) { finestra.setSize(200,180); finestra. setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE); finestra.add(Display); finestra.setVisible(true); } }
|
|
|
total (Member)
Guru
Messaggi: 815
Iscritto: 16/09/2006
|
ho provato il primo codice anche a me va.. Java versione 1.6.0, Windows Vista, geforce go 6100
|
|
The Lizard King (Member)
Rookie
Messaggi: 33
Iscritto: 10/06/2007
|
Postato originariamente da total:
ho provato il primo codice anche a me va.. Java versione 1.6.0, Windows Vista, geforce go 6100 |
Ma il problema non č il fatto di andare o meno... il disegno mi appare perfettamente, solo che se copro il programma con ad esempio una finestra pių piccola (tipo la console ms-dos), funziona da gomma cancellina Mi cancella le parti di disegno in cui passo la finestra sopra... oppure se passo direttamente su una finestra intera, e poi ritorno al programma... tutto cancellato finchč non ridimensiono/ingrandisco, o riclicco in basso sulla barra delle applicazioni sul titolo del programma... |
|
netarrow (Admin)
Guru^2
Messaggi: 2502
Iscritto: 12/05/2004
|
ah se ridimensionando o facendo altre eventi si risistema potresti aggiungere fra gli eventi della finestre l'evento windowActivated implementanto WindowsEvent e dentro quel evento mettere il metodo
repaint()
cosė appena la finestra torna ad essere attiva (e quindi si presume visibile) viene ridisegnato il contenuto.
Se con repaint ancora non va gioca sporco a ridimensiona da codice sempre in quell'evento la finestra di 1 px e poi rimettila normale
|
|
netarrow (Admin)
Guru^2
Messaggi: 2502
Iscritto: 12/05/2004
|
ho provato ma non va con WindowListener, bisogna usare WindowFocusListener:
Codice sorgente - presumibilmente Java |
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class ShowColors extends JFrame implements WindowFocusListener { public ShowColors() { setTitle("Using colors"); setSize(500,150); setResizable(false); addWindowFocusListener(this); setDefaultCloseOperation (JFrame. EXIT_ON_CLOSE); setLocationRelativeTo(null); setVisible(true); } repaint(); } /* quanto perde il focus non fare nulla */ } { super.paint(g); g. setColor(new Color(255,0,0 )); g.fillRect(25,35,100,30); g.drawString("Current RGB: "+g.getColor(),130,50); g. setColor(new Color(0.0f,1.0f,0.0f )); g.fillRect(25,60,100,30); g.drawString("Current RGB: "+g.getColor(),130,75); g.fillRect(25,85,100,30); g.drawString("Current RGB: "+g.getColor(),130,100); g.setColor(color); g.fillRect(25,110,100,25); g.drawString("RGB values: "+color.getRed()+", "+color.getGreen()+", "+color.getBlue(),130,125); } public static void main (String[] args ) { ShowColors finestra = new ShowColors(); } }
|
Ultima modifica effettuata da netarrow il 28/01/2008 alle 9:36 |
|