Oppure

Loading
26/01/08 18:14
The Lizard King
Ho provato sia con JDK 5 sia con 6... comunque, come faccio a disegnare in JPanel? Siccome la funzione paint() si avvia automaticamente senza richiamarla nel JFrame...?
aaa
26/01/08 20:10
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.
aaa
27/01/08 9:10
The Lizard King
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
aaa
27/01/08 10:54
netarrow
import java.awt.*;
import javax.swing.*;

class Display extends JPanel {
 public void paintComponent(Graphics g){
   super.paintComponent(g);
   g.drawString("CiaoATutti",5,25);
  }
 }
 }


e poi inserisci il pannello nella finestra.
Ultima modifica effettuata da netarrow 27/01/08 10:55
aaa
27/01/08 14:05
The Lizard King
Postato originariamente da netarrow:

import java.awt.*;
import javax.swing.*;

class Display extends JPanel {
 public void paintComponent(Graphics g){
   super.paintComponent(g);
   g.drawString("CiaoATutti",5,25);
  }
 }
 }


e poi inserisci il pannello nella finestra.


Ho provato così ma mi da errore:

import java.awt.*;
import javax.swing.*;

class Display extends JPanel
{
	public Display()
	{
		paintComponent();
	}
	public void paintComponent(Graphics g)
	{
		super.paintComponent(g);
		g.drawString("CiaoATutti",5,25);
	}
	public static void main(String[] args)
	{
		JFrame finestra = new JFrame("Prova");
		finestra.setSize(200,180);
		finestra.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		finestra.add(Display);
		finestra.setVisible(true);
	}
}
:d
aaa
27/01/08 17:42
total
ho provato il primo codice anche a me va.. Java versione 1.6.0, Windows Vista, geforce go 6100
aaa
27/01/08 21:25
The Lizard King
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...
aaa
28/01/08 8:01
netarrow
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
aaa