当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 9 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 一个类怎么引用另外一个类的变量?
帖子发表于 : 2009-09-14 12:32 

注册: 2008-04-25 23:23
帖子: 56
送出感谢: 0 次
接收感谢: 0 次
如下是PanelLeft类里面的一个函数
public void actionPerformed(ActionEvent arg0) {
if(arg0.getSource()==buttonBrush)
{panelTop.card.show(brushPanel,"brushPanel");}

}

panelTop是PanelTop的一个对象.
burshPanel是BrushPanel的一个对象.

有错误如下:

Description Resource Path Location Type

brushPanel cannot be resolved PanelLeft.java javapaint/src/ll line 46 Java Problem
panelTop cannot be resolved PanelLeft.java javapaint/src/ll line 46 Java Problem


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 一个类怎么引用另外一个类的变量?
帖子发表于 : 2009-09-14 12:51 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
参数传进来


_________________
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 一个类怎么引用另外一个类的变量?
帖子发表于 : 2009-09-14 16:50 

注册: 2008-04-25 23:23
帖子: 56
送出感谢: 0 次
接收感谢: 0 次
BigSnake.NET 写道:
参数传进来


好的,我试试. 非常感谢~~

不过这样为什么不行呢~?


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 一个类怎么引用另外一个类的变量?
帖子发表于 : 2009-09-14 17:30 
头像

注册: 2007-10-19 14:51
帖子: 4953
地址: 深圳
送出感谢: 0 次
接收感谢: 2
变量作用域啊。


_________________
Nothing 有事请发邮件到 yms541 AT gmail.com
alias 爱慕颇雷尔='mplayer'


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 一个类怎么引用另外一个类的变量?
帖子发表于 : 2009-09-14 18:33 

注册: 2008-04-25 23:23
帖子: 56
送出感谢: 0 次
接收感谢: 0 次
yaoms 写道:
变量作用域啊。


我觉得也是这方面的原因,不过还是没搞定. 怎么用参数传进来~? 能具体说下吗? 谢谢!


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 一个类怎么引用另外一个类的变量?
帖子发表于 : 2009-09-14 19:09 
头像

注册: 2006-10-12 1:21
帖子: 512
送出感谢: 0 次
接收感谢: 0 次
把panelTop定义成PanelLeft的成员变量
构造函数,或者get,set方法赋值


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 一个类怎么引用另外一个类的变量?
帖子发表于 : 2009-09-14 19:48 

注册: 2008-04-25 23:23
帖子: 56
送出感谢: 0 次
接收感谢: 0 次
liujingjing5 写道:
把panelTop定义成PanelLeft的成员变量
构造函数,或者get,set方法赋值


用构造函数引用的,编译通过了,可以运行.
但点eraseButton的时候,还是会出错.
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: wrong parent for CardLayout
at java.awt.CardLayout.checkLayout(Unknown Source)
at java.awt.CardLayout.show(Unknown Source)
at liujia.PanelLeft.actionPerformed(PanelLeft.java:45)
at java.awt.Button.processActionEvent(Unknown Source)
at java.awt.Button.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)


最后由 qiaokelii 编辑于 2009-09-14 19:59,总共编辑了 1 次

页首
 用户资料  
 
8 楼 
 文章标题 : Re: 一个类怎么引用另外一个类的变量?
帖子发表于 : 2009-09-14 19:52 

注册: 2008-04-25 23:23
帖子: 56
送出感谢: 0 次
接收感谢: 0 次
PanelTop的结构:
public class PanelTop extends Panel {
public CardLayout card;
public BrushPanel brushPanel; //自定义的类
public ErasePanel erasePanel; //自定义的类
PanelTop(){
brushPanel=new BrushPanel();
erasePanel=new ErasePanel();
card=new CardLayout();
this.setLayout(card);
this.setBackground(Color.gray);
this.add(brushPanel,"brushPanel");
this.add(erasePanel,"erasePanel");

}
}




PanelLeft的构造函数:

PanelLeft(PanelTop panelTop){
this.panelTop=panelTop;
buttonBrush=new ButtonLeft("Brush"); //自定义的类
buttonErase=new ButtonLeft("Erase"); //自定义的类
this.add(buttonBrush);
this.add(buttonErase);
buttonBrush.addActionListener(this);
buttonErase.addActionListener(this);
}


PanelLeft里面的事件响应函数:

public void actionPerformed(ActionEvent arg0) {
if(arg0.getSource()==buttonBrush) {
panelTop.card.show(panelTop.brushPanel,"erasePanel");
}
else if(arg0.getSource()==buttonErase) {
panelTop.card.show(panelTop.erasePanel,"erasePanel");
}
}


以下是整个软件的布局:
this.setLayout(new BorderLayout());
panelTop=new PanelTop();
panelTop.setBackground(Color.gray);
panelLeft=new PanelLeft(panelTop);
panelLeft.setBackground(Color.gray);
panelLeft.setSize(40, 800);


panelRight=new PanelRight(); //自定义的类

this.add(panelLeft,BorderLayout.WEST);
this.add(panelTop,BorderLayout.NORTH);
this.add(panelRight,BorderLayout.CENTER);
this.addWindowListener(this);
this.setBounds(0,0,800,600);
this.setVisible(true);


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 一个类怎么引用另外一个类的变量?
帖子发表于 : 2009-09-14 20:04 

注册: 2008-04-25 23:23
帖子: 56
送出感谢: 0 次
接收感谢: 0 次
找到问题所在啦. 原来是没有搞清楚show函数的用法~~~

把 panelTop.card.show(panelTop.brushPanel,"erasePanel");

改为panelTop.card.show(panelTop,"erasePanel");


多谢各位~~


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 9 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译