| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 388 人关注过本帖
标题:后面的类不可以单拿出来么?为什么拿出来就错?
只看楼主 加入收藏
shaoxuecheng
Rank: 1
等 级:新手上路
帖 子:60
专家分:0
注 册:2006-1-15
收藏
 问题点数:0 回复次数:1 
后面的类不可以单拿出来么?为什么拿出来就错?

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

public class cao4 extends JFrame
{
JPanel jp;
public Color color;
public JLabel jl;
public int x1=0,y1=0;
public cao4()
{
super("鼠标电击事件");
jl=new JLabel();
getContentPane().add(jl,BorderLayout.SOUTH);
jp=new JPanel(new FlowLayout());
getContentPane().add(jp,BorderLayout.CENTER);
addMouseMotionListener(new mc());
setSize(500,500);
setVisible(true);
}
public void paint(Graphics g)
{
super.paint(g);

g.setColor(color);
g.fillOval(x1-50,y1-50,100,100);
}

public static void main(String[] args)
{
cao4 mycao4=new cao4();
mycao4.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

class mc extends MouseMotionAdapter
{
public void mouseDragged(MouseEvent event)
{
x1=event.getX();
y1=event.getY();
color=Color.red;
repaint();
}
public void mouseMoved(MouseEvent event)
{
x1=event.getX();
y1=event.getY();
color=Color.black;
repaint();

}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////
就是写成这样就错
package cao;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;

public class cao4 extends JFrame
{
JPanel jp;
public Color color;
public JLabel jl;
public int x1=0,y1=0;
public cao4()
{
super("鼠标电击事件");
jl=new JLabel();
getContentPane().add(jl,BorderLayout.SOUTH);
jp=new JPanel(new FlowLayout());
getContentPane().add(jp,BorderLayout.CENTER);
addMouseMotionListener(new mc());
setSize(500,500);
setVisible(true);
}
public void paint(Graphics g)
{
super.paint(g);

g.setColor(color);
g.fillOval(x1-50,y1-50,100,100);
}

public static void main(String[] args)
{
cao4 mycao4=new cao4();
mycao4.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

}
class mc extends MouseMotionAdapter
{
public void mouseDragged(MouseEvent event)
{
x1=event.getX();
y1=event.getY();
color=Color.red;
repaint();
}
public void mouseMoved(MouseEvent event)
{
x1=event.getX();
y1=event.getY();
color=Color.black;
repaint();

}
}
为什么?

2006-05-30 22:27
aiyuheng
Rank: 1
等 级:新手上路
威 望:1
帖 子:656
专家分:0
注 册:2006-1-12
收藏
得分:0 
那个类是个内部类,不能拿出来.
在你后面的程序里x1 y1 color都没定义 没法传递
而如果写成内部类,就能访问在主类里的x1 y1 color
内部类对象能够访问创建它的对象的实现--包括那些私有数据.

when i want to ask anyone,i will ask myself first.
2006-05-31 07:30
快速回复:后面的类不可以单拿出来么?为什么拿出来就错?
数据加载中...
 
   



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

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