|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Feb 2002
Messaggi: 1370
|
[Java-Swing]Piccolo problema nel disegno di un rettangolo
Ok vorrei fare un programma un pò più complesso di quello che disegna un rettangolo ma per me il traguardo è riuscire a disegnare il rettangolo visto che poi tutte le funzionalità aggiuntive sono semplice codice aggiunto (almeno spero).
Ho un pò di nozioni di Java swing ed ho anche visto alcuni esempietti ma a me questo rettangolo proprio non vuole uscire, molto probabilmente perchè il jpanel nel quale vorrei disegnarlo si trova all'interno di altri componenti e la struttura (disegnata con NetBeans) è un bel pò più complessa rispetto alla semplicissima struttura con 3 classi per disegnare un frame con al centro un rettangolo mostrata negli esempi. Bene passiamo al mio programma: Ho come dicevo prima una struttura un pò complessa ma credo si possa tranquillamente trascurarla e concentrarsi sul pannello nel quale desidero visualizzare il disegno. Esso è un Jpanel chiamato "pannelloDisegno". Mettendo un mouseListener sempre mediante NetBeans a questo jpanel ho inserito il seguente codice: Codice:
private void pannelloDisegnoMousePressed(java.awt.event.MouseEvent evt) { pannelloDisegno.setVisible(true); Graphics g=pannelloDisegno.getGraphics(); g.setColor(Color.RED); g.drawRect(1,1,10,10); System.out.print("DEBUGok!!!"); pannelloDisegno.paint(g); } Sapete dirmi dove si trova l'errore? Grazie! ![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2006
Messaggi: 22462
|
ora sono un po' arrugginito, ma il componenete non dovresti aggiungerlo a al pannello?
__________________
amd a64x2 4400+ sk939;asus a8n-sli; 2x1gb ddr400; x850 crossfire; 2 x western digital abys 320gb|| asus g1
Se striscia fulmina, se svolazza l'ammazza |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jun 2001
Messaggi: 458
|
...mmmh forse le istruzioni per disegnare un rettangolo devono essere inserite nel metodo painComponent(...)
oppure devi fare un repaint() sul pannello...
__________________
|
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
Infatti nel codice da te postato si vede che vai a manipolare l'oggetto Graphics facendotelo restituire dal JPanel. Non si dovrebbe mai manipolare l'oggetto Graphics facendoselo restituire dal componente su cui si vuole disegnare all'esterno dei metodi canonici previsti da AWT e Swing (paint(Graphics g) & paintComponent(Graphics g)) Se vuoi approfondire la questione consulta questo articolo.
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:51.