要求写一个绘图程序,要使用MyShape对象数组,允许建立多个自窗口,可以选择绘图的类型和填充、颜色。
现在写的程序绘不出图来,而且用JSlider来调节颜色也不是自动重绘了。为啥啊???
[此贴子已经被作者于2006-12-1 9:43:16编辑过]
----------------解决方案--------------------------------------------------------
[CODE]package Ex17;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.color.*;
public class DrawPanel extends JPanel
{
private MyColorChooser mcc;
public Color mycolor;
public DrawPanel()
{
mcc = new MyColorChooser();
}
public void set()
{
mycolor = mcc.mycolorchooser;
repaint();
}
}[/CODE]
就你这个程序设计就有问题,你的mcc外界能访问么?访问不了,我不是和你说过,用参数传递的方式把它传进来吗?
----------------解决方案--------------------------------------------------------
参数传递?
java不是只有值传递和对象传递么?
public DrawPanel( MyColorChooser mcc )
{
this.mcc = mcc;
}
这个?上次忘记问了,这个是将MyColorChooser整个弄进来么?
那它的方法和值是就可以直接调用了么?
我们好像没有讲过这个……………………
[此贴子已经被作者于2006-12-1 10:05:32编辑过]
----------------解决方案--------------------------------------------------------
这是将它的引用弄进来
所以,你在外面用它和在里面用它是一样的
也就是说外面改变了它,你在DrawPanel就可以知道它的了
----------------解决方案--------------------------------------------------------
那绘图部分呢?我现在把它给写在DrawPanel里面了(MouseListenery也在这里边),想在MyTest里的InternalFrame进行绘图功能,我在actionperformed里面加入了一个JPanel,然后在下面写了一个MyJPanel方法,这里怎么将DrawPanel里的绘图功能引入?
----------------解决方案--------------------------------------------------------
在JAVA中,你想到的的对象都可以用传参数的方式传过去
这样你在别的地方调用了它的方法,在另外一个地方也会随之而改变的
我只能这么说了
你自己再好好改一下你的程序
----------------解决方案--------------------------------------------------------