| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1103 人关注过本帖
标题:功能实现不了
只看楼主 加入收藏
yqfang310
Rank: 2
等 级:新手上路
威 望:4
帖 子:458
专家分:0
注 册:2006-10-10
收藏
 问题点数:0 回复次数:20 
功能实现不了

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

public class J_Draw extends JFrame
{
int x1=0,x2=0,y1=0,y2=0;
int width=0,height=0;

public J_Draw()
{
super("Example of mouse event handling");

addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{
x1=e.getX();
y1=e.getY();
repaint();

}
}
);
addMouseMotionListener(new MouseMotionAdapter()
{
public void mouseReleased(MouseEvent e)
{

x2=e.getX();
y2=e.getY();
width=x2-x1;
height=y2-y1;

repaint();
}
});
setSize(400,400);
setVisible(true);

}
public void paint(Graphics g)
{
g.drawLine(x1,y1,width,height);
}
public static void main(String args[])
{
JFrame app=new J_Draw();

Container cp=app.getContentPane();
app.setBackground(Color.white);
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
本程序是要实现一个画矩形功能的,怎么实现不了啊

搜索更多相关主题的帖子: super public import 
2006-11-28 17:27
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
g.drawLine(x1,y1,width,height);
这是什么 方法,这是画线的方法

画矩形是这个方法么?

可惜不是你,陪我到最后
2006-11-28 19:12
unicorn
Rank: 4
等 级:贵宾
威 望:14
帖 子:1066
专家分:0
注 册:2005-10-25
收藏
得分:0 
他肯定知道 drawRect()的
但他的想法是用线画矩形的
首先获得当前鼠标按下的点 然后连接第二次按下点 在连接第三次....

unicorn-h.spaces. ◇◆ sava-scratch.spaces.  noh enol ! pue pu!w hw u! shemle aq ll!m noh 
2006-11-28 19:18
开心一科
Rank: 1
等 级:新手上路
帖 子:56
专家分:0
注 册:2006-10-5
收藏
得分:0 

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

public class J_Draw extends JFrame
{
int x1=0,x2=0,y1=0,y2=0;
int width=0,height=0;

public J_Draw()
{
super("Example of mouse event handling");

addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{
x1=e.getX();
y1=e.getY();
repaint();

}


public void mouseReleased(MouseEvent e)
{

x2=e.getX();
y2=e.getY();
width=x2-x1;
height=y2-y1;

repaint();

}}
);
setSize(400,400);
setVisible(true);

}
public void paint(Graphics g)
{
g.setColor(Color.blue);
g.drawRect(x1,y1,width,height);
}
public static void main(String args[])
{
JFrame app=new J_Draw();

Container cp=app.getContentPane();
app.setBackground(Color.white);
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
似乎还有点毛病,就是在刚刚画过一个矩形之后,鼠标在安下,会再画一个和上次一模一样的矩形!
能否给改一下哦!


2006-11-28 20:07
unicorn
Rank: 4
等 级:贵宾
威 望:14
帖 子:1066
专家分:0
注 册:2005-10-25
收藏
得分:0 
g.drawRect(x1,y1,width,height);//
再设置一个更新操作试试,就是重新读取鼠标点中的坐标

你的方法和楼主所要的不同的..你的是直接生成矩形,他想要的是单独画线连接成矩形的

unicorn-h.spaces. ◇◆ sava-scratch.spaces.  noh enol ! pue pu!w hw u! shemle aq ll!m noh 
2006-11-28 20:21
yqfang310
Rank: 2
等 级:新手上路
威 望:4
帖 子:458
专家分:0
注 册:2006-10-10
收藏
得分:0 
以下是引用unicorn在2006-11-28 19:18:41的发言:
他肯定知道 drawRect()的
但他的想法是用线画矩形的
首先获得当前鼠标按下的点 然后连接第二次按下点 在连接第三次....

对,这只是先前测试了一下,后来忘了改过来了


JAVA是什么?我也不清楚......
2006-11-28 20:43
禹_二
Rank: 1
等 级:新手上路
帖 子:661
专家分:0
注 册:2006-9-13
收藏
得分:0 

public void mousePressed(MouseEvent e)
{
x1=e.getX();
y1=e.getY();
// repaint();去掉就可以了。

}


2006-11-28 20:48
yqfang310
Rank: 2
等 级:新手上路
威 望:4
帖 子:458
专家分:0
注 册:2006-10-10
收藏
得分:0 
我之前试过了,也不可以

JAVA是什么?我也不清楚......
2006-11-28 21:40
unicorn
Rank: 4
等 级:贵宾
威 望:14
帖 子:1066
专家分:0
注 册:2005-10-25
收藏
得分:0 

咋看这个程序应该没什么问题的
前些天用MFC做个画矩形的程序时候,也是这么获得鼠标坐标然后连线(VC++里的方法是Lineto())的

你可以先试着用Canvas类实现一下


unicorn-h.spaces. ◇◆ sava-scratch.spaces.  noh enol ! pue pu!w hw u! shemle aq ll!m noh 
2006-11-28 21:55
yqfang310
Rank: 2
等 级:新手上路
威 望:4
帖 子:458
专家分:0
注 册:2006-10-10
收藏
得分:0 
是啊,千里版主怎么不在啊,快来救救我吧

JAVA是什么?我也不清楚......
2006-11-29 00:39
快速回复:功能实现不了
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027851 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved