为什么JPanel不响应mouse事件。详情见内。谢谢

jin2001 2002-02-05 04:14:44
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.*;

public class Test extends JFrame
{
public static void main(String[] args)
{
JFrame t=new Test();
t.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
t.setSize(200,300);
t.setVisible(true);
}

public Test()
{
JPanel b=new JMyPanel();
b.setBorder(BorderFactory.createRaisedBevelBorder());
b.setLayout(new BorderLayout());
JPanel p=new JPanel();
p.setBorder(BorderFactory.createLoweredBevelBorder());
p.add(new JButton("1"));
p.add(new JButton("2"));
getContentPane().add(b);
b.add(p,BorderLayout.NORTH);
}

class JMyPanel extends JPanel implements MouseListener{
public void mousePressed(MouseEvent e){
System.out.println("mousePressed");
}
public void mouseReleased(MouseEvent e){
System.out.println("mouseReleased");
}
public void mouseClicked(MouseEvent e){
System.out.println("mouseClicked");
}
public void mouseEntered(MouseEvent e){
System.out.println("mouseEntered");
}
public void mouseExited(MouseEvent e){
System.out.println("mouseExited");
}
}
}
...全文
122 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Norwaywoods 2002-02-05
  • 打赏
  • 举报
回复
To:iamfancy(边城狂人) 
你的也不对,下面才对!

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

public class Test extends JFrame
{
public static void main(String[] args)
{
JFrame t=new Test();
t.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
t.setSize(200,300);
t.setVisible(true);
}

public Test()
{
JPanel b=new JPanel();
b.setBorder(BorderFactory.createRaisedBevelBorder());
b.setLayout(new BorderLayout());
JPanel p=new JMyPanel();
//this.addMouseListener(p);
p.setBorder(BorderFactory.createLoweredBevelBorder());
getContentPane().add(b);
b.add(p,BorderLayout.NORTH);
}

class JMyPanel extends JPanel implements MouseListener{
public void mousePressed(MouseEvent e){
System.out.println("mousePressed");
}
public void mouseReleased(MouseEvent e){
System.out.println("mouseReleased");
}
public void mouseClicked(MouseEvent e){
System.out.println("mouseClicked");
}
public void mouseEntered(MouseEvent e){
System.out.println("mouseEntered");
}
public void mouseExited(MouseEvent e){
System.out.println("mouseExited");
}
public JMyPanel()
{
JButton BOne = new JButton("1");
JButton BTwo = new JButton("2");
this.add(BOne);
this.add(BTwo);
BOne.addMouseListener(this);
BTwo.addMouseListener(this);
}
}
}
Norwaywoods 2002-02-05
  • 打赏
  • 举报
回复
没关系
jin2001 2002-02-05
  • 打赏
  • 举报
回复
晕了晕了
iamfancy 2002-02-05
  • 打赏
  • 举报
回复
注意下面代码的变化

public Test()
{
JPanel b=new JPanel();
b.setBorder(BorderFactory.createRaisedBevelBorder());
b.setLayout(new BorderLayout());
JPanel p=new JMyPanel();

p.addMouseListener(p); ////// 把这一句加上试试

p.setBorder(BorderFactory.createLoweredBevelBorder());
p.add(new JButton("1"));
p.add(new JButton("2"));
getContentPane().add(b);
b.add(p,BorderLayout.NORTH);
}
Norwaywoods 2002-02-05
  • 打赏
  • 举报
回复
你没有加Listener--------addMouseListener(this)
jin2001 2002-02-05
  • 打赏
  • 举报
回复
写错了,硬是
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.*;

public class Test extends JFrame
{
public static void main(String[] args)
{
JFrame t=new Test();
t.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
t.setSize(200,300);
t.setVisible(true);
}

public Test()
{
JPanel b=new JPanel();
b.setBorder(BorderFactory.createRaisedBevelBorder());
b.setLayout(new BorderLayout());
JPanel p=new JMyPanel();
p.setBorder(BorderFactory.createLoweredBevelBorder());
p.add(new JButton("1"));
p.add(new JButton("2"));
getContentPane().add(b);
b.add(p,BorderLayout.NORTH);
}

class JMyPanel extends JPanel implements MouseListener{
public void mousePressed(MouseEvent e){
System.out.println("mousePressed");
}
public void mouseReleased(MouseEvent e){
System.out.println("mouseReleased");
}
public void mouseClicked(MouseEvent e){
System.out.println("mouseClicked");
}
public void mouseEntered(MouseEvent e){
System.out.println("mouseEntered");
}
public void mouseExited(MouseEvent e){
System.out.println("mouseExited");
}
}
}

62,616

社区成员

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

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