当前页面: 开发资料首页 → J2SE 专题 → 还没有达到菜鸟提的问题?
还没有达到菜鸟提的问题?
摘要: 还没有达到菜鸟提的问题?
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.applet.*;
import java.awt.geom.*;
class drawPanel extends JPanel implements MouseListener
{
drawPanel()
{
addMouseListener(this);
}
public void paint(Graphics g)
{
Graphics2D g2=(Graphics2D)g;
for(int i=0;i<600;i+=40)
{
Line2D.Float Line1=new Line2D.Float(0,i+40,600,i+40);
g2.setPaint(Color.black);
g2.draw(Line1);
}
for(int j=0;j<600;j+=40)
{
Line2D.Float Line1=new Line2D.Float(j+40,0,j+40,600);
g2.setPaint(Color.black);
g2.draw(Line1);
}
}
public void mousePressed(MouseEvent e)
{
public void paint(Graphics g)
{
Graphics2D g2=(Graphics2D)g;
Ellipse2D.Float e1=new Ellipse2D.Float(0,0,40,40);
g2.draw(e1);
addMouseListener(this);
}
}
}
class jfmain
{
jfmain()
{
JFrame.setDefaultLookAndFeelDecorated(true); // 设置窗体图标显示位默认方式
JFrame f=new JFrame("主界面");// 创建JFrame对象
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 点击窗口关闭图标关闭窗口
drawPanel pa=new drawPanel();// 创建容器JPanel类对象
Container cp=f.getContentPane();// 创建JFrame的容器对象
cp.add(pa,BorderLayout.CENTER);
f.setLocation(0,0);
f.setSize(1024,800);
f.setResizable(false);
f.setVisible(true);
}
public static void main(String[] args)
{
jfmain jf=new jfmain();
}
}
这个程序的public void mousePressed(MouseEvent e) 为什么没有起到作用?
望大家多多指点
死鸟路过,顶下...
加句if(e.getsourse()==ture) 试试
同楼上的意见
你的mousePressed 事件 没有时间源
因此不会触发事件
JJ,你是那个窝里出生的菜鸟.我也去重生生,
同样是菜鸟,为什么差距杂就这么大呢?
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.applet.*;
import java.awt.geom.*;
class drawPanel extends JPanel implements MouseListener
{
drawPanel()
{
this.addMouseListener(this);
}
public void paint(Graphics g)
{
Graphics2D g2=(Graphics2D)g;
for(int i=0;i<600;i+=40)
{
Line2D.Float Line1=new Line2D.Float(0,i+40,600,i+40);
g2.setPaint(Color.black);
g2.draw(Line1);
}
for(int j=0;j<600;j+=40)
{
Line2D.Float Line1=new Line2D.Float(j+40,0,j+40,600);
g2.setPaint(Color.black);
g2.draw(Line1);
}
}
public void mousePressed(MouseEvent e)
{
/*{
int x=(int)e.getX();
int y=(int)e.getY();
ChessPoint_black chesspoint_black=new ChessPoint_black(new drawPanel());
}
*/
}
public void mouseReleased(MouseEvent e){}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mouseClicked(MouseEvent e)
{
if(e.getButton()==e.BUTTON1) //当按下鼠标左键时下棋子。
{
int x=e.getX();
int y=e.getY();
System.out.println("x="+x);
ChessPoint_black chesspoint_black=new ChessPoint_black(new drawPanel());
}
}
}
//负责创建黑色棋子的类:
class ChessPoint_black extends Canvas implements MouseListener
{
drawPanel drawP=null;
ChessPoint_black(drawPanel p)
{
setSize(40,40);
drawP=p;
addMouseListener(this);
}
public void paint(Graphics g) //绘制棋子的大小。
{
g.setColor(Color.black);
g.fillOval(0,0,40,40);
}
public void mouseReleased(MouseEvent e){}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e) {}
public void mouseClicked(MouseEvent e){}
public void mousePressed(MouseEvent e){}
}
public class jfmain extends Frame
{
drawPanel chesspad=new drawPanel();
jfmain()
{
JFrame.setDefaultLookAndFeelDecorated(true); // 设置窗体图标显示位默认方式
JFrame f=new JFrame("主界面");// 创建JFrame对象
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 点击窗口关闭图标关闭窗口
drawPanel pa=new drawPanel();// 创建容器JPanel类对象
Container cp=f.getContentPane();// 创建JFrame的容器对象
cp.add(pa,BorderLayout.CENTER);
f.setLocation(0,0);
f.setSize(1024,800);
f.setResizable(false);
add(chesspad);
f.setVisible(true);
}
public static void main(String[] args)
{
jfmain jf=new jfmain();
}
}
经过修改,但是还是不能显示棋子??不知道问题出在那里?
望大家指点!!!谢谢了
原因是没有把 ChessPoint_black注册drawPanel
this.add(chesspoint_black);
谢谢大家继续关注
待续中....
接贴了