有问题请教高手们~ 你这个程序怎么没有事件处理类啊你用这个简单些 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 以下程序不知道是不是你要求得,试试把,此外你用得事件处理方法已经过时,建议使用新得委托事件模型来处理,见第一个程序。1、applet独立出来//Applet 放置一个button和画线得panelimport java.awt.Graphics;import java.applet.Applet;import java.awt.*;import java.awt.event.*;public class DrawApplet extends Applet implements ActionListener{ DrawLine panel; Button line; public void init(){ panel=new DrawLine(); line=new Button("Start Line"); setLayout(new BorderLayout()); add(line,"North"); add(panel); line.addActionListener(this); } public void actionPerformed(ActionEvent e){ //根据panel中得draw标记判断是否画线 if(panel.draw==true){ panel.draw=false; line.setLabel("Start Line"); } else{ line.setLabel("Stop Line"); panel.draw=true; } }}2、画线得 panelimport java.awt.Graphics;import java.awt.Point;import java.awt.Event;//import java.applet.Applet;import java.awt.*;public class DrawLine extends Panel{ final int MaxLines = 20; int CurrentLines = 0; Point LineStarts[] = new Point[MaxLines]; Point LineEnds[] = new Point[MaxLines]; Point StartPoint, CurrentPoint; String CurrentMessage = ""; public boolean draw=false; //是否画线得标记(根据标记决定是否响应事件) public boolean mouseDown(Event evt, int x, int y) { if(draw==true){ if (CurrentLines < MaxLines) { StartPoint = new Point(x, y); CurrentPoint = new Point(x, y); CurrentMessage = "线段: (" + x + ", " + y + ")" + " - (" + x + ", " + y + ")"; System.out.println("线段开始位置: (" + x + ", " + y + ")"); repaint(); } else System.out.println("太多线段了絬琿... "); } return true; } public boolean mouseUp(Event evt, int x, int y) { if(draw==true) //draw为true才响应,下同 if (CurrentLines < MaxLines) { CurrentPoint = new Point(x, y); LineStarts[CurrentLines] = StartPoint; LineEnds[CurrentLines ++] = CurrentPoint; System.out.println("线段结束位置: (" + x + ", " + y + ")"); StartPoint = null; CurrentPoint = null; repaint(); } return true; } public boolean mouseDrag(Event evt, int x, int y) { if(draw==true); if (CurrentLines < MaxLines) { CurrentPoint = new Point(x, y); CurrentMessage = "线段: (" + StartPoint.x + ", " + StartPoint.y + ")" + " - (" + x + ", " + y + ")"; repaint(); } return true; } public boolean mouseMove(Event evt, int x, int y) { if(draw==true){ CurrentMessage = "你把鼠标移到 (" + x + ", " + y + ") "; repaint();} return true; } public void paint(Graphics g) { int i; g.drawString(CurrentMessage, 5, 15); //画出线段 礶絬琿 for (i = 0;i < CurrentLines;i ++) g.drawLine(LineStarts[i].x, LineStarts[i].y, LineEnds[i].x, LineEnds[i].y); if (StartPoint != null) g.drawLine(StartPoint.x, StartPoint.y, CurrentPoint.x, CurrentPoint.y); }} 不太明白,这里为什么要用STATIC 这个PHP的类型,转换成对应的java类型应该是哪种? oracle连接池最大连接数问题 怎么把String保存为xml,100分,在线等 立即结帖!!! 高手:多线程与队列写入内存问题 为什么页面没有显示,急 frame panel 的区别??? 新手上路:两字符串相等的问题 想做一个类似socks2http的软件,望高手帮忙! 怎么得到一个String? java写的一个类要定时执行 请问如何看JAVA的帮助文档啊~!!!!!!!!
//Applet 放置一个button和画线得panel
import java.awt.Graphics;
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;public class DrawApplet extends Applet implements ActionListener{
DrawLine panel;
Button line;
public void init(){
panel=new DrawLine();
line=new Button("Start Line");
setLayout(new BorderLayout());
add(line,"North");
add(panel);
line.addActionListener(this);
}
public void actionPerformed(ActionEvent e){
//根据panel中得draw标记判断是否画线
if(panel.draw==true){
panel.draw=false;
line.setLabel("Start Line");
}
else{
line.setLabel("Stop Line");
panel.draw=true;
}
}
}2、画线得 panel
import java.awt.Graphics;
import java.awt.Point;
import java.awt.Event;
//import java.applet.Applet;
import java.awt.*;public class DrawLine extends Panel{
final int MaxLines = 20;
int CurrentLines = 0;
Point LineStarts[] = new Point[MaxLines];
Point LineEnds[] = new Point[MaxLines];
Point StartPoint, CurrentPoint;
String CurrentMessage = "";
public boolean draw=false; //是否画线得标记(根据标记决定是否响应事件)
public boolean mouseDown(Event evt, int x, int y) {
if(draw==true){
if (CurrentLines < MaxLines) {
StartPoint = new Point(x, y);
CurrentPoint = new Point(x, y);
CurrentMessage = "线段: (" + x + ", " + y + ")"
+ " - (" + x + ", " + y + ")";
System.out.println("线段开始位置: (" + x + ", " + y + ")");
repaint();
}
else
System.out.println("太多线段了絬琿... ");
}
return true;
} public boolean mouseUp(Event evt, int x, int y) {
if(draw==true) //draw为true才响应,下同
if (CurrentLines < MaxLines) {
CurrentPoint = new Point(x, y);
LineStarts[CurrentLines] = StartPoint;
LineEnds[CurrentLines ++] = CurrentPoint;
System.out.println("线段结束位置: (" + x + ", " + y + ")");
StartPoint = null;
CurrentPoint = null;
repaint();
}
return true;
} public boolean mouseDrag(Event evt, int x, int y) {
if(draw==true);
if (CurrentLines < MaxLines) {
CurrentPoint = new Point(x, y);
CurrentMessage = "线段: (" + StartPoint.x + ", "
+ StartPoint.y + ")" + " - (" + x + ", " + y + ")";
repaint();
}
return true;
} public boolean mouseMove(Event evt, int x, int y) {
if(draw==true){
CurrentMessage = "你把鼠标移到 (" + x + ", " + y + ") ";
repaint();}
return true;
} public void paint(Graphics g) {
int i;
g.drawString(CurrentMessage, 5, 15);
//画出线段 礶絬琿
for (i = 0;i < CurrentLines;i ++)
g.drawLine(LineStarts[i].x, LineStarts[i].y,
LineEnds[i].x, LineEnds[i].y); if (StartPoint != null)
g.drawLine(StartPoint.x, StartPoint.y,
CurrentPoint.x, CurrentPoint.y);
}
}