java-applet的简单流程图绘制 求解:程序中画出图片的坐标和ID怎样保存到数据库,还有applet怎样连接数据库,请各位网友帮忙,在此谢过! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 得到数据直接更新数据库就ok啦applet跟一般的连接没什么两样把 看看我的源码吧import javax.swing.*;import java.awt.*;import java.awt.image.*;import java.awt.event.*;import java.applet.*;import java.util.*;public class applet7 extends Applet {int count=6;Vector v=new Vector();Image[] img=new Image[count];int myWidth=0,myHeight=0;int widthcount=0;boolean[] b=new boolean[count];int[] width=new int[count],height=new int[count],w=new int[count],h=new int[count],wid=new int[count],hei=new int[count],ww=new int[count],hh=new int[count];int startX=0,startY=0,endX=0,endY=0;Canvas startObj=null,endObj=null;String drawclear="";int clickX=0,clickY=0,moveX=0,moveY=0;canvas[] can=null;myCanvas[] mycan=new myCanvas[count];Canvas curcan=null;Canvas curdelcan=null;Image curimg=null;JPanel jp=new JPanel(null);myCanvas drawLine=new myCanvas("drawLine");MediaTracker mt=new MediaTracker(this);public void init() {for(int j=0;j<count;j++){ img[j]=this.getImage(this.getCodeBase(),"0.jpg");//获取图象 }this.resize(800,600);this.setLayout(null);for(int i=0;i<img.length;i++) mt.addImage(img[i], 0);try { mt.waitForAll();} catch(Exception ex) {System.err.println(ex.toString());}this.add(jp);jp.setBounds(0,0,800,80);jp.add(this.drawLine);jp.setBackground(new Color(230,230,230));drawLine.setBounds(5,5,90,30);drawLine.addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { clickdrawLine(e); }});for(int i=0;i<img.length;i++) { mycan[i]=new myCanvas(img[i]); width[i]=img[i].getWidth(this); height[i]=img[i].getHeight(this); jp.add(mycan[i]); mycan[i].setBounds(100+5*(i+1)+widthcount,5,img[i].getWidth(this),img[i].getHeight(this)); widthcount+=img[i].getWidth(this);}this.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { clickhere(e); }});}public void clickhere(MouseEvent e) {if(this.curcan==null)return;if(e.getModifiers()==MouseEvent.BUTTON3_MASK) { Canvas ca=new canvas(curimg); this.add(ca); ca.setBounds(e.getX(),e.getY(),curimg.getWidth(this),curimg.getHeight(this)); this.validate();}}public void clickdrawLine(MouseEvent e) {if(drawLine.getBackground().equals(new Color(230,230,255))) { drawLine.setBackground(new Color(230,230,230)); startObj=null; endObj=null; drawclear="";} else { drawLine.setBackground(new Color(230,230,255)); drawclear="draw";}}public void paint(Graphics g) {for(int i=0;i<v.size();i++) { Vector v1=(Vector)v.elementAt(i); startX = ((int[])v1.elementAt(1))[0] + ((int[])v1.elementAt(1))[2] / 2; startY = ((int[])v1.elementAt(1))[1] + ((int[])v1.elementAt(1))[3] / 2; endX = ((int[])v1.elementAt(1))[4] + ((int[])v1.elementAt(1))[6] / 2; endY = ((int[])v1.elementAt(1))[5] + ((int[])v1.elementAt(1))[7] / 2; g.drawLine(startX, startY, endX, endY); drawArrowhead(g,((Canvas[])v1.elementAt(0))[0],((Canvas[])v1.elementAt(0))[1]);}}public void drawArrowhead(Graphics g,Canvas startObj,Canvas endObj) {double xx=0,yy=0,xx1=0,yy1=0,xx2=0,yy2=0;myWidth=myHeight=(int)Math.pow((double)(Math.pow(endObj.getWidth(),2d)+Math.pow(endObj.getHeight(),2d)),1/2d)/2;xx=endX-(endX-startX)*myWidth/Math.pow((double)(endX-startX)*(endX-startX)+(double)(endY-startY)*(endY-startY),1/2d);yy=endY-(endY-startY)*myHeight/(Math.pow((double)(endX-startX)*(endX-startX)+(double)(endY-startY)*(endY-startY),1/2d));xx1=xx-20*Math.cos(Math.atan(((double)yy-startY)/((double)xx-startX))-radians(30));yy1=yy-20*Math.sin(Math.atan(((double)yy-startY)/((double)xx-startX))-radians(30));xx2=xx-20*Math.sin(radians(60)-Math.atan(((double)(yy-startY))/((double)(xx-startX))));yy2=yy-20*Math.cos(radians(60)-Math.atan(((double)(yy-startY))/((double)(xx-startX))));if(startObj.getX()+startObj.getWidth()/2>endObj.getX()+endObj.getWidth()/2) { xx1=xx+20*Math.cos(Math.atan(((double)yy-startY)/((double)xx-startX))-radians(30)); yy1=yy+20*Math.sin(Math.atan(((double)yy-startY)/((double)xx-startX))-radians(30)); xx2=xx+20*Math.sin(radians(60)-Math.atan(((double)(yy-startY))/((double)(xx-startX)))); yy2=yy+20*Math.cos(radians(60)-Math.atan(((double)(yy-startY))/((double)(xx-startX))));}g.fillPolygon(new int[]{(int)xx2,(int)xx1,(int)xx},new int[]{(int)yy2,(int)yy1,(int)yy},3);}public double radians(int degrees) { return ((double)degrees)*Math.PI/180.0;} 接上面代码://********************************************动态图标class canvas extends Canvas {Image im=null;public canvas(Image im) {super();this.setCursor(new Cursor(Cursor.MOVE_CURSOR));this.im=im;this.addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { clickcanvas(e); }});this.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent e) { if(e.getKeyCode()==KeyEvent.VK_DELETE) removecanvas(e); }});this.addMouseMotionListener(new MouseMotionAdapter() { public void mouseDragged(MouseEvent e) { movecanvas(e); }});}public void movecanvas(MouseEvent e) {Canvas mcan=(Canvas)e.getSource();int mtop=mcan.getY(),mleft=mcan.getX(),mwidth=mcan.getWidth(),mheight=mcan.getHeight();mcan.setBounds(mleft+e.getX()-clickX,mtop+e.getY()-clickY,mwidth,mheight);for(int i=0;i<v.size();i++) { Vector v1=(Vector)v.elementAt(i); if(((Canvas[])v1.elementAt(0))[0].equals(mcan)) { ((int[])v1.elementAt(1))[0]=mcan.getX(); ((int[])v1.elementAt(1))[1]=mcan.getY(); ((int[])v1.elementAt(1))[2]=mcan.getWidth(); ((int[])v1.elementAt(1))[3]=mcan.getHeight(); } else if(((Canvas[])v1.elementAt(0))[1].equals(mcan)) { ((int[])v1.elementAt(1))[4]=mcan.getX(); ((int[])v1.elementAt(1))[5]=mcan.getY(); ((int[])v1.elementAt(1))[6]=mcan.getWidth(); ((int[])v1.elementAt(1))[7]=mcan.getHeight(); }}((applet7)this.getParent()).repaint();}public void removecanvas(KeyEvent e) {try { Canvas mcan=(Canvas)e.getSource(); ((applet7)this.getParent()).remove(curdelcan); for(int i=v.size()-1;i>=0;i--) { Vector v1 = (Vector) v.elementAt(i); if(((Canvas[])v1.elementAt(0))[0].equals(mcan)||((Canvas[])v1.elementAt(0))[1].equals(mcan)) v.removeElementAt(i); } ((applet7)this.getParent()).validate(); ((applet7)this.getParent()).repaint();}catch(NullPointerException ex){return;}}public void clickcanvas(MouseEvent e) { curdelcan=(Canvas)e.getSource(); clickX=e.getX(); clickY=e.getY(); ((applet7)this.getParent()).repaint(); if(((applet7)this.getParent()).drawclear.equals(""))return; if(((applet7)this.getParent()).startObj==null&&((applet7)this.getParent()).endObj==null) ((applet7)this.getParent()).startObj=(Canvas)e.getSource(); else if(((applet7)this.getParent()).startObj!=null&&((applet7)this.getParent()).endObj==null&&((applet7)this.getParent()).startObj!=(Canvas)e.getSource()) { ((applet7)this.getParent()).endObj=(Canvas)e.getSource(); Vector v1=new Vector(); v1.addElement(new Canvas[]{startObj,endObj}); v1.addElement(new int[]{startObj.getX(),startObj.getY(),startObj.getWidth(),startObj.getHeight(),endObj.getX(),endObj.getY(),endObj.getWidth(),endObj.getHeight()}); v.addElement(v1); ((applet7)this.getParent()).drawclear=""; ((applet7)this.getParent()).drawLine.setBackground(null); ((applet7)this.getParent()).startObj=null; ((applet7)this.getParent()).endObj=null; }}public void paint(Graphics g) {g.drawImage(im,0,0,this);}}//****************************************************图标工具栏class myCanvas extends Canvas {Image im=null;String str="";public myCanvas(String s) {super();this.str=s;}public myCanvas(Image im) {super();this.setCursor(new Cursor(Cursor.HAND_CURSOR));this.im=im;this.addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { clickmyCanvas(e); }});}public void clickmyCanvas(MouseEvent e) { ((applet7)this.getParent().getParent()).drawLine.setBackground(null); ((applet7)this.getParent().getParent()).drawclear=""; ((applet7)this.getParent().getParent()).startObj=null; ((applet7)this.getParent().getParent()).endObj=null; curcan=(Canvas)e.getSource(); curimg=(Image)im;}public void paint(Graphics g) {if(str.equals("")) g.drawImage(im,0,0,this);else { g.drawString(str,20,getHeight()/2);}}}} 测试连接不了MSSQLserver数据库,请教哪位有这方面经验的朋友帮忙 个人认为不应该通过applet直接操作数据库,可以通过applet发http请求,再又服务器端连接数据库进行操作 请上面的朋友能说得详细点好吗?或者给我个示例给我好吗[email protected] applet直接操作数据库,系统处于安全的考虑,一般是不允许的 在java里怎样才能把读出的数据再写回文件中去,类似于c语言里的ungetc()? Java初学者求各位指点!panel中的panel2显示不出的问题 求助一个正则表达的问题 关于位移运算符的疑惑(>> 与 >>> ) 一个简单问题 ***问个小问题:如何使按钮保持被按下的状态? 为什么新浪的邮件可以读出来,而自已的Exchange Server服务器邮件却读不出? 怎样在一个类中定义方法,在将类实例化后自动运行?? java中文问题 谁能告诉我java究竟有什么用? 问个方法的用法,请不吝指教,谢谢! URL 和 Socket 有什么不同?
applet跟一般的连接没什么两样把
import javax.swing.*;
import java.awt.*;
import java.awt.image.*;
import java.awt.event.*;
import java.applet.*;
import java.util.*;public class applet7 extends Applet {
int count=6;
Vector v=new Vector();
Image[] img=new Image[count];
int myWidth=0,myHeight=0;
int widthcount=0;
boolean[] b=new boolean[count];
int[] width=new int[count],height=new int[count],w=new int[count],h=new int[count],wid=new int[count],hei=new int[count],ww=new int[count],hh=new int[count];
int startX=0,startY=0,endX=0,endY=0;
Canvas startObj=null,endObj=null;
String drawclear="";
int clickX=0,clickY=0,moveX=0,moveY=0;
canvas[] can=null;
myCanvas[] mycan=new myCanvas[count];
Canvas curcan=null;
Canvas curdelcan=null;
Image curimg=null;
JPanel jp=new JPanel(null);
myCanvas drawLine=new myCanvas("drawLine");
MediaTracker mt=new MediaTracker(this);public void init() {
for(int j=0;j<count;j++){
img[j]=this.getImage(this.getCodeBase(),"0.jpg");//获取图象
}
this.resize(800,600);
this.setLayout(null);
for(int i=0;i<img.length;i++)
mt.addImage(img[i], 0);
try {
mt.waitForAll();
} catch(Exception ex) {System.err.println(ex.toString());}
this.add(jp);
jp.setBounds(0,0,800,80);
jp.add(this.drawLine);
jp.setBackground(new Color(230,230,230));
drawLine.setBounds(5,5,90,30);
drawLine.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
clickdrawLine(e);
}
});
for(int i=0;i<img.length;i++) {
mycan[i]=new myCanvas(img[i]);
width[i]=img[i].getWidth(this);
height[i]=img[i].getHeight(this);
jp.add(mycan[i]);
mycan[i].setBounds(100+5*(i+1)+widthcount,5,img[i].getWidth(this),img[i].getHeight(this));
widthcount+=img[i].getWidth(this);
}
this.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
clickhere(e);
}
});
}public void clickhere(MouseEvent e) {
if(this.curcan==null)return;
if(e.getModifiers()==MouseEvent.BUTTON3_MASK) {
Canvas ca=new canvas(curimg);
this.add(ca);
ca.setBounds(e.getX(),e.getY(),curimg.getWidth(this),curimg.getHeight(this));
this.validate();
}
}public void clickdrawLine(MouseEvent e) {
if(drawLine.getBackground().equals(new Color(230,230,255))) {
drawLine.setBackground(new Color(230,230,230));
startObj=null;
endObj=null;
drawclear="";
} else {
drawLine.setBackground(new Color(230,230,255));
drawclear="draw";
}
}public void paint(Graphics g) {
for(int i=0;i<v.size();i++) {
Vector v1=(Vector)v.elementAt(i);
startX = ((int[])v1.elementAt(1))[0] + ((int[])v1.elementAt(1))[2] / 2;
startY = ((int[])v1.elementAt(1))[1] + ((int[])v1.elementAt(1))[3] / 2;
endX = ((int[])v1.elementAt(1))[4] + ((int[])v1.elementAt(1))[6] / 2;
endY = ((int[])v1.elementAt(1))[5] + ((int[])v1.elementAt(1))[7] / 2;
g.drawLine(startX, startY, endX, endY);
drawArrowhead(g,((Canvas[])v1.elementAt(0))[0],((Canvas[])v1.elementAt(0))[1]);
}
}public void drawArrowhead(Graphics g,Canvas startObj,Canvas endObj) {
double xx=0,yy=0,xx1=0,yy1=0,xx2=0,yy2=0;
myWidth=myHeight=(int)Math.pow((double)(Math.pow(endObj.getWidth(),2d)+Math.pow(endObj.getHeight(),2d)),1/2d)/2;
xx=endX-(endX-startX)*myWidth/Math.pow((double)(endX-startX)*(endX-startX)+(double)(endY-startY)*(endY-startY),1/2d);
yy=endY-(endY-startY)*myHeight/(Math.pow((double)(endX-startX)*(endX-startX)+(double)(endY-startY)*(endY-startY),1/2d));
xx1=xx-20*Math.cos(Math.atan(((double)yy-startY)/((double)xx-startX))-radians(30));
yy1=yy-20*Math.sin(Math.atan(((double)yy-startY)/((double)xx-startX))-radians(30));
xx2=xx-20*Math.sin(radians(60)-Math.atan(((double)(yy-startY))/((double)(xx-startX))));
yy2=yy-20*Math.cos(radians(60)-Math.atan(((double)(yy-startY))/((double)(xx-startX))));
if(startObj.getX()+startObj.getWidth()/2>endObj.getX()+endObj.getWidth()/2) {
xx1=xx+20*Math.cos(Math.atan(((double)yy-startY)/((double)xx-startX))-radians(30));
yy1=yy+20*Math.sin(Math.atan(((double)yy-startY)/((double)xx-startX))-radians(30));
xx2=xx+20*Math.sin(radians(60)-Math.atan(((double)(yy-startY))/((double)(xx-startX))));
yy2=yy+20*Math.cos(radians(60)-Math.atan(((double)(yy-startY))/((double)(xx-startX))));
}
g.fillPolygon(new int[]{(int)xx2,(int)xx1,(int)xx},new int[]{(int)yy2,(int)yy1,(int)yy},3);
}public double radians(int degrees) {
return ((double)degrees)*Math.PI/180.0;
}
//********************************************动态图标
class canvas extends Canvas {
Image im=null;
public canvas(Image im) {
super();
this.setCursor(new Cursor(Cursor.MOVE_CURSOR));
this.im=im;
this.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
clickcanvas(e);
}
});
this.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
if(e.getKeyCode()==KeyEvent.VK_DELETE)
removecanvas(e);
}
});this.addMouseMotionListener(new MouseMotionAdapter() {
public void mouseDragged(MouseEvent e) {
movecanvas(e);
}
});
}public void movecanvas(MouseEvent e) {
Canvas mcan=(Canvas)e.getSource();
int mtop=mcan.getY(),mleft=mcan.getX(),mwidth=mcan.getWidth(),mheight=mcan.getHeight();
mcan.setBounds(mleft+e.getX()-clickX,mtop+e.getY()-clickY,mwidth,mheight);
for(int i=0;i<v.size();i++) {
Vector v1=(Vector)v.elementAt(i);
if(((Canvas[])v1.elementAt(0))[0].equals(mcan)) {
((int[])v1.elementAt(1))[0]=mcan.getX();
((int[])v1.elementAt(1))[1]=mcan.getY();
((int[])v1.elementAt(1))[2]=mcan.getWidth();
((int[])v1.elementAt(1))[3]=mcan.getHeight();
} else if(((Canvas[])v1.elementAt(0))[1].equals(mcan)) {
((int[])v1.elementAt(1))[4]=mcan.getX();
((int[])v1.elementAt(1))[5]=mcan.getY();
((int[])v1.elementAt(1))[6]=mcan.getWidth();
((int[])v1.elementAt(1))[7]=mcan.getHeight();
}
}
((applet7)this.getParent()).repaint();
}public void removecanvas(KeyEvent e) {
try {
Canvas mcan=(Canvas)e.getSource();
((applet7)this.getParent()).remove(curdelcan);
for(int i=v.size()-1;i>=0;i--) {
Vector v1 = (Vector) v.elementAt(i);
if(((Canvas[])v1.elementAt(0))[0].equals(mcan)||((Canvas[])v1.elementAt(0))[1].equals(mcan))
v.removeElementAt(i);
}
((applet7)this.getParent()).validate();
((applet7)this.getParent()).repaint();
}catch(NullPointerException ex){return;}
}
public void clickcanvas(MouseEvent e) {
curdelcan=(Canvas)e.getSource();
clickX=e.getX();
clickY=e.getY();
((applet7)this.getParent()).repaint();
if(((applet7)this.getParent()).drawclear.equals(""))return;
if(((applet7)this.getParent()).startObj==null&&((applet7)this.getParent()).endObj==null)
((applet7)this.getParent()).startObj=(Canvas)e.getSource();
else if(((applet7)this.getParent()).startObj!=null&&((applet7)this.getParent()).endObj==null&&((applet7)this.getParent()).startObj!=(Canvas)e.getSource()) {
((applet7)this.getParent()).endObj=(Canvas)e.getSource();
Vector v1=new Vector();
v1.addElement(new Canvas[]{startObj,endObj});
v1.addElement(new int[]{startObj.getX(),startObj.getY(),startObj.getWidth(),startObj.getHeight(),endObj.getX(),endObj.getY(),endObj.getWidth(),endObj.getHeight()});
v.addElement(v1);
((applet7)this.getParent()).drawclear="";
((applet7)this.getParent()).drawLine.setBackground(null);
((applet7)this.getParent()).startObj=null;
((applet7)this.getParent()).endObj=null;
}
}public void paint(Graphics g) {
g.drawImage(im,0,0,this);
}
}//****************************************************图标工具栏
class myCanvas extends Canvas {
Image im=null;
String str="";
public myCanvas(String s) {
super();
this.str=s;
}public myCanvas(Image im) {
super();
this.setCursor(new Cursor(Cursor.HAND_CURSOR));
this.im=im;
this.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
clickmyCanvas(e);
}
});
}public void clickmyCanvas(MouseEvent e) {
((applet7)this.getParent().getParent()).drawLine.setBackground(null);
((applet7)this.getParent().getParent()).drawclear="";
((applet7)this.getParent().getParent()).startObj=null;
((applet7)this.getParent().getParent()).endObj=null;
curcan=(Canvas)e.getSource();
curimg=(Image)im;
}public void paint(Graphics g) {
if(str.equals(""))
g.drawImage(im,0,0,this);
else {
g.drawString(str,20,getHeight()/2);
}
}
}
}