java事件处理机制问题 20

targets[k]=newJLabel();targets[k].setOpaque(true);targets[k].setBackground(Color.ORAN... targets[k]=new JLabel();
targets[k].setOpaque(true);
targets[k].setBackground(Color.ORANGE);
targets[k].setHorizontalTextPosition(SwingConstants.CENTER);
targets[k].setVerticalTextPosition(SwingConstants.BOTTOM);
targets[k].setPreferredSize(new Dimension(80,80));
targets[k].setHorizontalAlignment(SwingConstants.CENTER);
bottomPanel.add(targets[k]);
}
targets[0].setText("海阔天空");
targets[1].setText("MatLab");
targets[2].setText("米老鼠");
}
//【1】书上说这个地方有代码省略,但是我不知道省略的是什么代码。
public void mousePressed( MouseEvent e){
pressPoint=e.getPoint();
}
public void mouseReleased(MouseEvent e){
if(check()){
getGlassPane().setVisible(false);
for(int i=0;i<3;i++){
targets[i].setText("匹配成功");
targets[i].setIcon(img[i].getIcon());
}
}
}
private boolean check(){
boolean result=true;
for(int i=0;i<3;i++){
Point location=img[i].getLocationOnScreen();
Point seat=targets[i].getLocationOnScreen();
targets[i].setBackground(Color.GREEN);
if(location.x<seat.x||location.x>seat.x+80||location.y<seat.y||location.y>seat.y+80){
targets[i].setBackground(Color.ORANGE);
result=false;
}
}
return result;
}
public void mouseDragged(MouseEvent e){
JLabel source=(JLabel)e.getSource();
Point imgPoint=source.getLocation();
Point point=e.getPoint();
source.setLocation(imgPoint.x+point.x-pressPoint.x,imgPoint.y+point.y-pressPoint.y);
}
}
Question:书上说在【1】位置有代码省略。
这是代码的下半部分,由于代码太长一次提交不了,所以分了两次,上半部分代码http://zhidao.baidu.com/question/576021354.html
展开
 我来答
历盆郁7
2013-08-01 · TA获得超过4277个赞
知道大有可为答主
回答量:1795
采纳率:100%
帮助的人:955万
展开全部
  1. 你的问题就是,还不理解接口,包括抽象类,

  2. 先说接口,如果你这个类不是抽象类,并且实施了某个接口,那么就要override这个接口里面的方法,方法内容可以是空,但是必要有这个方法

  3. 再说抽象类,和接口类似,必须override抽象类的抽象方法。

  4. 以上为啥说不是抽象类呢?如果是抽象类,那么可以不override,有非抽象类的子类override

    你的错误就是,接口里面的方法没override全,把下面的贴上去就行了。


  5.     public void mouseMoved(MouseEvent e) {
            
        }

        public void mouseClicked(MouseEvent e) {
            
        }

        public void mouseEntered(MouseEvent e) {
            
        }

        public void mouseExited(MouseEvent e) {
            
        }
爱赠与我
2013-08-01 · TA获得超过250个赞
知道答主
回答量:228
采纳率:50%
帮助的人:51.6万
展开全部
空指针异常,仔细检查一下看是否使用null对象并调用了相关方法。这个单看难度还是比较大,反复调试吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-08-01
展开全部
public Matching() {
getContentPane().setLayout(new BorderLayout());
setBounds(300, 300, 400, 400);
setTitle("配对游戏");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JPanel imagePanel = new JPanel();
imagePanel.setLayout(null);
imagePanel.setOpaque(false);
setGlassPane(imagePanel);
getGlassPane().setVisible(true);
ImageIcon ico1;
ImageIcon icon[] = new ImageIcon[5];
ico1 = new ImageIcon(getClass().getResource("1.jpg"));
icon[0] = ico1;
ico1 = new ImageIcon(getClass().getResource("2.jpg"));
icon[1] = ico1;
ico1 = new ImageIcon(getClass().getResource("3.jpg"));
icon[2] = ico1;
ico1 = new ImageIcon(getClass().getResource("3.jpg"));
icon[4] = ico1;
final JPanel bottomPanel = new JPanel();
bottomPanel.setLayout(new FlowLayout(FlowLayout.CENTER, 20, 5));
getContentPane().add(bottomPanel, BorderLayout.SOUTH);
targets=new JLabel[3];
img=new JLabel[3];
for (int k = 0; k < 3; k++) {
img[k] = new JLabel( icon[k]);
img[k].setSize(50, 50);
img[k].setBorder(new LineBorder(Color.GRAY));
int x = (int) (Math.random() * (getWidth() - 50));
int y = (int) (Math.random() * (getHeight() - 150));
img[k].setLocation(x, y);
img[k].addMouseListener(this);
img[k].addMouseMotionListener(this);
imagePanel.add(img[k]);
targets[k] = new JLabel();
targets[k].setOpaque(true);
targets[k].setBackground(Color.ORANGE);
targets[k].setHorizontalTextPosition(SwingConstants.CENTER);
targets[k].setVerticalTextPosition(SwingConstants.BOTTOM);
targets[k].setPreferredSize(new Dimension(80, 80));
targets[k].setHorizontalAlignment(SwingConstants.CENTER);
bottomPanel.add(targets[k]);
}
targets[0].setText("海阔天空");
targets[1].setText("MatLab");
targets[2].setText("米老鼠");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式