关于java的paint()方法

小弟我现在在JAVA里用图实现了一幅地图,然后现在想把它画出来:1,当用户输入1,用黑色画整个图2,当用户输入2,用红色画最小生成树,可恢复黑色3,当用户输入3,再输入两... 小弟我现在在JAVA里用图实现了一幅地图,然后现在想把它画出来:
1,当用户输入1,用黑色画整个图
2,当用户输入2,用红色画最小生成树,可恢复黑色
3,当用户输入3,再输入两个点,用绿色画出两点间最短路径,可恢复黑色

小弟刚接触GUI,不太懂关于paint()函数的问题,鉴于paint不是在main里执行的,所以当我用paint()画出整个地图,怎么再从这幅图上画最小生成树和最短路径(并在需要时恢复黑色)?也就是说,怎样让我的画图行为取决于用户输入?

谢谢各位大神了!
文字说明可看第一条回答我的追问。

import java.awt.*;
import javax.swing.*;
public class Test extends JFrame {
public static void main(String[] args){
Test sl = new Test();
sl.update();
}
Test(){
super("Sample");
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setSize(600,600);
setVisible(true);
}
public void update(){
repaint();
}
public void paint(Graphics g) {
g.setColor(Color.black);
//有角矩形,起始点(10,30),宽80,高50
g.drawRect(10,30,80,50);
//圆角矩形,起始点(110,30),宽80,高50,角(a=20,b=10)
g.drawRoundRect(110,30,80,50,20,10);
//椭圆,圆心(110,90)、a=80,b=50
g.drawOval(110,90,80,50);
//一条弧,圆心(219,30)、a=80,b=50 角度在0-90之间
g.drawArc(210,30,80,50,0,90);
//扇面,圆心(219,90)、a=80,b=50 角度在0-90之间
g.fillArc(210,90,80,50,0,90);
}
}
展开
 我来答
Nomat
2012-11-26 · TA获得超过314个赞
知道小有建树答主
回答量:342
采纳率:0%
帮助的人:322万
展开全部
呵呵 这个其实是很简单的,你在GUI中要捕捉键盘的输入就应该增加一个键盘的监听器。
public void addKeyListener(KeyListener l)利用这个方法捕捉。
import java.awt.*;
import javax.swing.*;
public class Test extends JFrame implements addKeyListener {
int sign = 0;
public static void main(String[] args){
Test sl = new Test();
}
Test(){
addKeyListener(this);
...
}

public void paint(Graphics g) { //这里就要分情况绘制了
if(sign == 0){

}else if(sign == 1){}
}
void keyPressed(KeyEvent e)
{
if(e.getKeyCode() == KeyEvent.VK_0){
sign = 0;
repaint();
}else if(e.getKeyCode() == KeyEvent.VK_0){
sign = 1;
repaint();
}
}
void keyReleased(KeyEvent e) {}

void keyTyped(KeyEvent e) {}
}
非凡大视野
2012-11-24 · TA获得超过395个赞
知道小有建树答主
回答量:304
采纳率:0%
帮助的人:75.5万
展开全部
求贴代码...
追问
具体代码我还没有写,我还在研究GUI。但我补充的代码可以说明我的问题。这段代码在paint里画了很多图形。但是当我执行程序,这些图形是一次画出来的。有没有什么方法能让我输入1,画出长方形。然后输入2,画出椭圆。然后还可以输入3,擦除已画椭圆...总结的话就是怎样让我能够通过用户输入的方式控制画图的行为。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式