|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Jun 2004
Messaggi: 53
|
[JAVA] JFrame e paint()
Ciao, magari la domanda vi può sembrare stupida.... guardate questo codice:
Codice:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.applet.*;
class moto extends JFrame implements ActionListener{
JFrame frame;
public JButton bott[]=new JButton[6];
public Image scooter[]=new Image[3];
public int soldi;
moto(){
init();
}
public void init(){
JFrame.setDefaultLookAndFeelDecorated(true);
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
frame.pack();
frame.setSize(800,600);
frame.setVisible(true);
bott[0]=new JButton("I tuoi Dati");
bott[0].addActionListener(this);
frame.getContentPane().add(bott[0]);
bott[0].setBounds(10,10,40,50);
repaint();
}
public void paint(Graphics g){
g.drawString("CIAO",350,200);
}
public static void main(String args[]){
moto sr=new moto();
}
public void actionPerformed(ActionEvent ae){
}
}
Volevo usare il paint per scrivere delle cose anzichè usare dell eJLabel ke diventerebbe palloso.... Ciao e un grazie così |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Dec 2002
Città: Bologna
Messaggi: 483
|
è un pò che non giocherello col java, ma se ricordo bene il metodo da ridefinire per disegnare sul panello e il paintComponent(Graphics g)...
non garantisco niente...
__________________
Acer TravelMate 8103Wlmi |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Jun 2004
Messaggi: 53
|
No, ho provato così
public void paintComponent(Graphics g){ g.drawStringt("CIAO",350,200); } ma nn funzia.....nessun'altra idea???? Ciao e grazie |
|
|
|
|
|
#4 |
|
Bannato
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
|
Il tuo paint appartiene agli oggetti "moto", che sono dei JFrame. Il problema è che non visualizzi una finestra di tipo "moto" ma un normale JFrame.
Se hai bisogno di qualche suggerimento sull'uso del framework Swing chiedi senza remore Ciao. |
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Jun 2004
Messaggi: 53
|
L'avevo pensatoa ankio questo motivo.....allora usaerò il frame con moto.....poi se avrò altri errori ti kiederò ancora...
ciao e grazie |
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Jul 2004
Messaggi: 1578
|
Re: [JAVA] JFrame e paint()
Quote:
ti basta chiamare tutti quei metodi su this. Poi nel metodo paint dovresti richiamare super.paint() questo perchè (almeno in teoria) quando il tuo moto viene disegnato devi gestire il disegno per esempio dei bordi, della scritta col titolo della finestra ecc... E questo lo fa il paint di JFrame. Un'ultima cosa, nel metodo main mi sembra che tu non fai moto.show() se non sbaglio (e' una vita che non uso Swing) dovresti farlo. Ciao |
|
|
|
|
|
|
#7 |
|
Member
Iscritto dal: Jun 2004
Messaggi: 53
|
ho provato a fare come mi hai detto te...ma super.paint() da errore, poi se metto a tutti i metodi this mi da un errore di esecuzione e nn devo fare moto.show() xkè al massimo è sr.show(). Cmq grazie lo stesso....se hai ancora qualke dritta serà ben accetta!!!
CIAO |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Jul 2004
Messaggi: 1578
|
La chiamata a super.paint() dev'essere la prima chiamata del metodo, se no ti da errore.
Per quanto riguarda show() intendevo sr.show() sorry |
|
|
|
|
|
#9 |
|
Member
Iscritto dal: Jun 2004
Messaggi: 53
|
Anke se lo metto come prima riga mi da errore lo stesso.... Come errore dice cannot resolve symbol.....
|
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Jul 2004
Messaggi: 1578
|
Ah gia scusa, super.paint( g );
gli devi passare l'oggetto Graphics che ti e' stato passato dalla chiamata |
|
|
|
|
|
#11 |
|
Member
Iscritto dal: Jun 2004
Messaggi: 53
|
OK, ora ho fatto così:
Codice:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.applet.*;
class moto extends JFrame implements ActionListener{
JFrame frame;
public JButton bott[]=new JButton[6];
public Image scooter[]=new Image[3];
public int soldi;
moto(){
init();
}
public void init(){
bott[0]=new JButton("I tuoi Dati");
bott[0].addActionListener(this);
getContentPane().add(bott[0]);
bott[0].setBounds(10,10,40,50);
repaint();
}
public void paint(Graphics g){
super.paint(g);
g.drawString("CIAO",350,200);
}
public static void main(String args[]){
moto sr=new moto();
sr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
sr.getContentPane().setLayout(null);
sr.pack();
sr.setSize(800,600);
sr.setVisible(true);
}
public void actionPerformed(ActionEvent ae){
}
}
Grazie mille per tutto....se ho altri problemini te li kiederò!!! Ciao e ancora grazie! |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:21.



















