Applet java...Aiutatemi...x favore!!!!

Aperto da Sere, 04 Ottobre 2007, 23:33:04

Discussione precedente - Discussione successiva

0 Utenti e 1 Visitatore stanno visualizzando questa discussione.

Sere

ok grazie...hai ragione,in effetti ho un paio di cose che ho chiamato elisse,ora l'ho modificato...anche se il programma nn va cmq a partire dal costruttore del programma ellisse...:(
nn so se ti ho fatto capire che intendo dire...
cmq grazie di nuovo x la tua immensa pazienza :)



Questo messaggio è stato aggiornato da Sere il 06/10/2007  alle ore  13:59:54

benna

Prego:)
Riguardo all'errore nel costruttore: non puoi inserire in una classe un costruttore di un'altra, inserisci il codice che vi è contenuto nel metodo init() e dovrebbe andare


Sere

ah capisco...apposta nn mi funzionava...:D
cmq mo ci provo,ma nel programma ellisse nn ho l'init...o sbaglio?

Io ci ho provato...ora mi compila finalmente ma nn funziona cmq...doh!
ti metto il programma così come l'ho copiato e incollato...spero tu riesca a capire dove sbaglio...

import javax.swing.JApplet;

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.Color;
import java.awt.Shape;
import java.awt.geom.Line2D;
import java.awt.geom.Point2D;
import java.awt.geom.Ellipse2D;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseMotionAdapter;
import java.lang.Math;
import java.awt.Font;
import java.awt.BasicStroke;

public class ProgrammaBis extends JApplet
{
private Shape [] scegliForma;
private Shape [] aggiungiRimuovi;
private Shape [] scegliColori;
private Shape [] contornoColori;
private Point2D.Double punto;
private Rectangle contorno;
private BasicStroke spessore;
private Ellisse[] ellisse;
private Ellipse2D.Double[] ellisse2;
private Line2D.Double lineaCorrente;
private int numEllissi;
private Point2D.Double inizio;
private String messaggio;
private BasicStroke tratteggio;
private BasicStroke continuo;
   
public void init()
{   
scegliForma = new Shape[6];
int b=0;
for(int i=0;i{
if(i<3)
{
scegliForma=new Rectangle (0,b,40,40);
b+=40;
}
if(i==3)
{
Point2D.Double   p1=new Point2D.Double(10,20);
Point2D.Double   p2=new Point2D.Double(30,20);
scegliForma=new Line2D.Double(p1,p2);
}
if(i==4)
{
scegliForma=new Ellipse2D.Double(5,50,30,20);
}
if(i==5)
{
scegliForma=new Rectangle (5,90,30,20);
}
}
aggiungiRimuovi=new Shape [2];
int a=0;
for(int i=0;i{
aggiungiRimuovi=new Rectangle (a,460,40,39);
a+=40;
}
aggiungiRimuovi=new Shape [2];
int a=0;
for(int i=0;i{
aggiungiRimuovi=new Rectangle (a,460,40,39);
a+=40;
}
contornoColori=new Shape [6];
int a1=264;
for(int i=0;i{
contornoColori=new Rectangle (a1,460,39,39);
a1+=39;
}
scegliColori=new Shape [6];
int a2=265;
for(int i=0;i{
scegliColori=new Rectangle (a2,461,38,38);
a2+=39;
}
spessore=new BasicStroke(3.0f);
ellisse=new Ellisse[100];
class AscoltaClick extends MouseAdapter
{
public void mousePressed(MouseEvent e)
{
int x=getX();
int y=getY();
if(x<=40)
{
if(y<40)
{
contorno=new Rectangle(0,40,40,40);
}
if(y>40 && y<80)
{
contorno=new Rectangle(0,80,40,40);
class AscoltaClick2 extends MouseAdapter
{
int x1=0;
int y1=0;
public void mousePressed(MouseEvent e)
{
if(numEllissi>=ellisse2.length)
return;
x1 = e.getX();
y1 = e.getY();
Point2D.Double p = new Point2D.Double(x1, y1);
inizio = p;
lineaCorrente = new Line2D.Double(inizio,p);
repaint();
}
public void mouseReleased(MouseEvent e)
{
if(numEllissi>=ellisse2.length)
return;
int x2 = e.getX();
int y2 = e.getY();
if (x2>=x1)
{
int l = x2-x1;
if (y2>=y1)
{
int h = y2-y1;
ellisse2[numEllissi] =new Ellipse2D.Double(x1,y1,l,h);
}
else
{
int h =(y1-y2);
ellisse2[numEllissi] =new Ellipse2D.Double(x1,y2,l,h);
}
}
else
{
int l=x1-x2;
if (y2>=y1)
{
int h = y2-y1;
ellisse2[numEllissi] =new Ellipse2D.Double(x2,y1,l,h);
}
else
{
int h =y1-y2;
ellisse2[numEllissi] =new Ellipse2D.Double(x2,y2,l,h);
}
}
numEllissi++;
lineaCorrente = null;
if(numEllissi==ellisse2.length)
return;
repaint();
}
}
class AscoltaMovimento extends MouseMotionAdapter
{
public void mouseDragged(MouseEvent e)
{
if(numEllissi>=ellisse.length)
return;
int x = e.getX();
int y = e.getY();
Point2D.Double p = new Point2D.Double(x, y);
lineaCorrente = new Line2D.Double(inizio,p);
repaint();
}
}
MouseAdapter ascoltaEventi = new AscoltaClick();
addMouseListener(ascoltaEventi);
MouseMotionAdapter ascoltaMosse=new AscoltaMovimento();
addMouseMotionListener(ascoltaMosse);
}
}
if(y>80 && y<120)
{
contorno=new Rectangle(0,120,40,40);
}
if(y>=460)
{
if(x<40)
{
contorno=new Rectangle(0,460,40,39);
}
if(x>40 && x<80)
{
contorno=new Rectangle(40,460,40,39);
}
if(x>=264 && x<303)
{
contorno=new Rectangle(264,460,39,39);
}
if(x>303 && x<342)
{
contorno=new Rectangle(303,460,40,39);
}
if(x>342 && x<381)
{
contorno=new Rectangle(342,460,40,39);
}
if(x>381 && x<420)
{
contorno=new Rectangle(381,460,40,39);
}
if(x>420 && x<459)
{
contorno=new Rectangle(420,460,40,39);
}
if(x>459 && x<498)
{
contorno=new Rectangle(459,498,40,39);
}
}      
repaint();
}
}
AscoltaClick mouse = new AscoltaClick();
addMouseListener(mouse);
}
public void paint(Graphics g)
{

Graphics2D g2 = (Graphics2D) g;
Graphics2D g3 =   (Graphics2D) g;
Graphics2D g4 = (Graphics2D) g;
Graphics2D g5 = (Graphics2D) g;
Graphics2D g6 = (Graphics2D) g;
Graphics2D g7 = (Graphics2D) g;

g2.clearRect(0,0,getWidth(),getHeight());        

for(int i=0; ig2.draw((Shape) scegliForma);         
for(int i=0; ig3.draw((Shape) aggiungiRimuovi);
g3.drawString("Agg",10,483);
g3.drawString("Rim",50,483);
for(int i=0; ig4.draw((Shape) contornoColori);         
            
g5.fill((Shape) scegliColori[0]);
g5.setColor(Color.white);
g5.fill((Shape) scegliColori[1]);
g5.setColor(Color.red);
g5.fill((Shape) scegliColori[2]);
g5.setColor(Color.blue);
g5.fill((Shape) scegliColori[3]);
g5.setColor(Color.green);
g5.fill((Shape) scegliColori[4]);
g5.setColor(Color.yellow);
g5.fill((Shape) scegliColori[5]);

g6.setColor(Color.orange);
g6.setStroke(spessore);
g6.draw((Shape)contorno);

g7.setColor(Color.blue);
g7.setStroke(continuo);
for(int i=0; ig7.draw((Shape) ellisse2);
g7.setColor(Color.black);
g7.setStroke(tratteggio);
if(lineaCorrente!=null)
g7.draw(lineaCorrente);
}
}

Scusa un'altra cosa ma xkè se clicco mi si contorna sempre e solo il tasto x l'ellisse?
:o

Questo messaggio è stato aggiornato da Sere il 06/10/2007  alle ore  15:51:21

benna

Hai fatto un po di confusione con il copia-incolla:
Hai ripetuto 2 volte il codice

aggiungiRimuovi=new Shape [2];
int a=0;
for(int i=0;i{
aggiungiRimuovi=new Rectangle (a,460,40,39);
a+=40;
}

Hai dimenticato di chiudere delle graffe prima della classe AscoltaClick2 (che secondo me non dovrebbe esserci), così facendo sia quella classe che il metodo mousepressed() sono definiti dentro un if
La classe AscoltaClick è definita dentro il metodo init()


Sere

ops...che sbadata...grazie!da sola nn riuscivo proprio a notarle queste cose!!! :D
Senti,quindi mi consigli di eliminarlo AscoltaClick2 o devo proprio modificarlo?

Allora...ultime news...ho provato a modificarlo...vabbè,apparte che mi sono sbagliata a copiarti qui il programma,in realtà nn avevo ripetuto quel pezzo di programma...vabbè,piccola distrazione,sorry...:D
cmq si,dicevo,ho provato a togliere AscoltaClick2 ma funziona peggio di prima o meglio nn fa quello che dovrebbe!!!Scusami,nn uccidermi,ma come devo fare?Non riesco a risolvere sta cosa...non so che istruzioni devo mettere x poter fare quello che ti avevo descritto prima...puoi aiutarmi?Grazie mille ancora cmq!:o

Questo messaggio è stato aggiornato da Sere il 09/10/2007  alle ore  22:41:48

Sere

C'è qlc che puo' aiutarmi please?????:(
Sono disperata...vi prego datemi una mano...:o

benna

Gli ho dato una sistemata ma da uno strano problema di sfarfallamento
Marcoff se riesci dagli un'occhiata



Sere

Beh,innanzi tutto ti ringrazio x il programma...l'ho compilato e ho visto il probl di cui mi parlavi...ora provo a dargli un'occhiata...mi venisse un lampo di genio :D...cmq grazie x la grande disponibilità fin qui dimostrata...;)

benna

Di nulla, mi fa sempre piacere programmare e rendermi utile ;)


Sere

Scusatemi,ho provato a modificare qlc sia sul programma come lo avevo scritto io che su quello che mi ha messo a disposizione benna ma nn riesco a risolvere i problemi...se vi venisse in mente qlc da suggerirmi è tutto ben accetto...grazie! :D :D