java paint问题?。。。

wnyi11 2010-06-12 04:36:51
1. 一个panel上面画了几幅画
2. 我得到了那几幅画的最大和最小坐标(并用蓝色的矩形框把其圈住)
3. 《未实现》当鼠标经过某个矩形区域时,巨型框变成红色,离开再换回到蓝色。

本人的疑惑:
我实现2的时候,用的是1.panel的Graphics去画框,同理3也用的是1.panel的Graphics去重画框
以至于实现3的时候总是要重画1的那几幅图片
怎样可以实现只画矩形框。
...全文
367 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
diggywang 2010-06-12
  • 打赏
  • 举报
回复
分层绘制,每种不同类型的图形绘制在不同的Swing对象上(一般来做是透明的JPanel)
diggywang 2010-06-12
  • 打赏
  • 举报
回复
分层绘制,每种不同类型的图形绘制在不同的Swing对象上(一般来做是透明的JPanel)
zqfddqr 2010-06-12
  • 打赏
  • 举报
回复




import javax.swing.*;
import java.awt.*;
import java.awt.image.*;

public class MyFrame extends JFrame {

private static final Image image = Toolkit.getDefaultToolkit().getImage("C:\\车牌.jpg");
JPanel p, p1;
Graphics gp1;

public MyFrame() {
this.setSize(800, 600);
p = new MyPanel(image);
p1 = new MyPanel();
p1.setBounds(0, 0, 800, 600);
p.setBounds(0, 0, 800, 600);
p1.setOpaque(false);
p1.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {

public void mouseMoved(java.awt.event.MouseEvent evt) {
p1MouseMoved(evt);
}
});
add(p);
add(p1);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}

private void p1MouseMoved(java.awt.event.MouseEvent evt) {
gp1 = p1.getGraphics();
p1.paintImmediately(0, 0, 800, 600);
gp1.setColor(new Color(1f, 0f, 0f, 1f));
gp1.drawRect(evt.getX(), evt.getY(), 100, 100);
}

public static void main(String[] args) {
MyFrame frame = new MyFrame();
}
}

class MyPanel extends JPanel {

private Image image = null;

public MyPanel(Image image) {
super();
this.image = image;
}

public MyPanel() {
super();
}

protected void paintComponent(Graphics g) {
g.drawImage(image, 0, 0, this.getWidth(), this.getHeight(), this);
}
}


测试应该没有什么问题
zqfddqr 2010-06-12
  • 打赏
  • 举报
回复
这个的用Swing来做
wnyi11 2010-06-12
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 zqfddqr 的回复:]
恩 回去给你找找呵呵我写过类似的
[/Quote]
如果有的话能否发我一份:clsclsgo@126.com
zqfddqr 2010-06-12
  • 打赏
  • 举报
回复
恩 回去给你找找呵呵我写过类似的
wnyi11 2010-06-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zqfddqr 的回复:]

在最上面再叠一个panel透明的 这个我试过好使的
呵呵
[/Quote]
可行吗?有例子否?
xx314327475 2010-06-12
  • 打赏
  • 举报
回复
swing 咱也不大懂啊
zqfddqr 2010-06-12
  • 打赏
  • 举报
回复
你的红色矩形画在最上面
zqfddqr 2010-06-12
  • 打赏
  • 举报
回复
在最上面再叠一个panel透明的 这个我试过好使的
呵呵
Java技术栈 2010-06-12
  • 打赏
  • 举报
回复
、兄台看来最近在研究swing吼 可惜这块我不熟。
sunboyqq23 2010-06-12
  • 打赏
  • 举报
回复
友情帮顶

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧