Traffic Organizing In JAVA2D Problems
hi everybody,
please try to understand me becuase my english is not so good..
i study in Damasucs university,IT..
i have a project : Traffic Organizing
i used java2D to draw Map
i made very good work until now
but I have some problems:
1-how can i save the new map (that the user draw it)..
2-when the user load an image from PC some parts of it disapear and after seconds it apears or after click on some part on screen >>> how can make it apear always ...
this the code :
Code:
try{
Graphics2D g2=(Graphics2D)jPanel6.getGraphics();
File file = new File( "src/Maps/Capture.jpg" );
FileInputStream inputStream = new FileInputStream( file );
JPEGImageDecoder decoder =JPEGCodec.createJPEGDecoder( inputStream );
BufferedImage image = decoder.decodeAsBufferedImage();
g2.drawImage(image, 0,0,image.getWidth(), image.getHeight(),this);
}
and this the code of dialog to load the image :
Code:
try {
JFileChooser jFileChooser1=new JFileChooser();
int response = jFileChooser1.showOpenDialog( this );
if (response==JFileChooser.APPROVE_OPTION)
{
File FileName =jFileChooser1.getSelectedFile();
Image_Loaded_Name=FileName.getAbsolutePath();
jLabel1.setText(FileName.getName());
FileInputStream inputStream = new FileInputStream(Image_Loaded_Name);
JPEGImageDecoder decoder =JPEGCodec.createJPEGDecoder( inputStream );
Back_Image=decoder.decodeAsBufferedImage();
}
} catch(Exception e) { }
and this the code of drawing streets and map :
Code:
g4=(Graphics2D)jPanel4.getGraphics();
g4.drawImage(Back_Image,0,0,Back_Image.getWidth(),Back_Image.getHeight(),null);
double dx,dy;
stroke1 = new BasicStroke(6,BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND, 0,dashPattern1, 0);
stroke2 = new BasicStroke(1,BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND, 0,dashPattern, 0);
for(int i=0;i<counter-1 ;i++)
{
if (points[i][0]!=-10000000&&points[i+1][0]!=-10000000)
{
dx=Math.abs(points[i][0]-points[i+1][0]);
dy=Math.abs(points[i][1]-points[i+1][1]);
g4.setColor(Color.DARK_GRAY);
g4.setFont(new Font("",2,16));
g4.setStroke(stroke1);
g4.draw(new Line2D.Double(points[i][0],points[i][1],points[i+1][0],points[i+1][1]));
g4.setStroke(stroke2);
g4.setColor(Color.white);
g4.draw(new Line2D.Double(points[i][0],points[i][1],points[i+1][0],points[i+1][1]));
}
}
for (int i=0;i<node_counter ;i++)
{ g4.setColor(Color.blue);
Ellipse2D e1=new Ellipse2D.Float(points_circle[i][0], points_circle[i][1], radius_node, radius_node);
Ellipse2D e2=new Ellipse2D.Float(points_circle[i][0]+2, points_circle[i][1]+2, radius_node-4, radius_node-4);
g4.draw(e1);
g4.draw(e2);
}
3- when i resize the window the graphics also disapear >>
:confused::confused:
please try to help me:o