Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - Problema inspiegabile di grafica...
Forum - Java - Problema inspiegabile di grafica... - Pagina 2

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
netarrow (Admin)
Guru^2


Messaggi: 2502
Iscritto: 12/05/2004

Segnala al moderatore
Postato alle 21:10
Sabato, 26/01/2008
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.

PM Quote
Avatar
The Lizard King (Member)
Rookie


Messaggi: 33
Iscritto: 10/06/2007

Segnala al moderatore
Postato alle 10:10
Domenica, 27/01/2008
Testo quotato

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

PM Quote
Avatar
netarrow (Admin)
Guru^2


Messaggi: 2502
Iscritto: 12/05/2004

Segnala al moderatore
Postato alle 11:54
Domenica, 27/01/2008
Codice sorgente - presumibilmente Java

  1. import java.awt.*;
  2. import javax.swing.*;
  3.  
  4. class Display extends JPanel {
  5.  public void paintComponent(Graphics g){
  6.    super.paintComponent(g);
  7.    g.drawString("CiaoATutti",5,25);
  8.   }
  9.  }
  10.  }



e poi inserisci il pannello nella finestra.

Ultima modifica effettuata da netarrow il 27/01/2008 alle 11:55
PM Quote
Avatar
The Lizard King (Member)
Rookie


Messaggi: 33
Iscritto: 10/06/2007

Segnala al moderatore
Postato alle 15:05
Domenica, 27/01/2008
Testo quotato

Postato originariamente da netarrow:

Codice sorgente - presumibilmente Java

  1. import java.awt.*;
  2. import javax.swing.*;
  3.  
  4. class Display extends JPanel {
  5.  public void paintComponent(Graphics g){
  6.    super.paintComponent(g);
  7.    g.drawString("CiaoATutti",5,25);
  8.   }
  9.  }
  10.  }



e poi inserisci il pannello nella finestra.



Ho provato cosė ma mi da errore:

Codice sorgente - presumibilmente Java

  1. import java.awt.*;
  2. import javax.swing.*;
  3.  
  4. class Display extends JPanel
  5. {
  6.         public Display()
  7.         {
  8.                 paintComponent();
  9.         }
  10.         public void paintComponent(Graphics g)
  11.         {
  12.                 super.paintComponent(g);
  13.                 g.drawString("CiaoATutti",5,25);
  14.         }
  15.         public static void main(String[] args)
  16.         {
  17.                 JFrame finestra = new JFrame("Prova");
  18.                 finestra.setSize(200,180);
  19.                 finestra.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  20.                 finestra.add(Display);
  21.                 finestra.setVisible(true);
  22.         }
  23. }

:d

PM Quote
Avatar
total (Member)
Guru


Messaggi: 815
Iscritto: 16/09/2006

Segnala al moderatore
Postato alle 18:42
Domenica, 27/01/2008
ho provato il primo codice anche a me va.. Java versione 1.6.0, Windows Vista, geforce go 6100

PM Quote
Avatar
The Lizard King (Member)
Rookie


Messaggi: 33
Iscritto: 10/06/2007

Segnala al moderatore
Postato alle 22:25
Domenica, 27/01/2008
Testo quotato

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 :rotfl: 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...

PM Quote
Avatar
netarrow (Admin)
Guru^2


Messaggi: 2502
Iscritto: 12/05/2004

Segnala al moderatore
Postato alle 9:01
Lunedė, 28/01/2008
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 :D

PM Quote
Avatar
netarrow (Admin)
Guru^2


Messaggi: 2502
Iscritto: 12/05/2004

Segnala al moderatore
Postato alle 9:36
Lunedė, 28/01/2008
ho provato ma non va con WindowListener, bisogna usare WindowFocusListener:

Codice sorgente - presumibilmente Java

  1. import java.awt.*;
  2. import java.awt.event.*;
  3. import javax.swing.*;
  4.  
  5. public class ShowColors extends JFrame implements WindowFocusListener
  6. {
  7.     public ShowColors()
  8.     {
  9.         setTitle("Using colors");
  10.         setSize(500,150);
  11.         setResizable(false);
  12.         addWindowFocusListener(this);
  13.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  14.         setLocationRelativeTo(null);
  15.         setVisible(true);
  16.     }
  17.  
  18.     public void windowGainedFocus(WindowEvent e) {
  19.         repaint();
  20.     }
  21.  
  22.    
  23.     public void windowLostFocus(WindowEvent e) {
  24.         /* quanto perde il focus non fare nulla */
  25.     }
  26.    
  27.     public void paint(Graphics g)
  28.     {
  29.         super.paint(g);
  30.         g.setColor(new Color(255,0,0));
  31.         g.fillRect(25,35,100,30);
  32.         g.drawString("Current RGB: "+g.getColor(),130,50);
  33.        
  34.         g.setColor(new Color(0.0f,1.0f,0.0f));
  35.         g.fillRect(25,60,100,30);
  36.         g.drawString("Current RGB: "+g.getColor(),130,75);
  37.        
  38.         g.setColor(Color.BLUE);
  39.         g.fillRect(25,85,100,30);
  40.         g.drawString("Current RGB: "+g.getColor(),130,100);
  41.        
  42.         Color color = Color.MAGENTA;
  43.         g.setColor(color);
  44.         g.fillRect(25,110,100,25);
  45.         g.drawString("RGB values: "+color.getRed()+", "+color.getGreen()+", "+color.getBlue(),130,125);
  46.     }
  47.    
  48.     public static void main(String[] args)
  49.     {
  50.        ShowColors finestra = new ShowColors();
  51.     }
  52. }


Ultima modifica effettuata da netarrow il 28/01/2008 alle 9:36
PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo