所以我是Java新手编程的新手,我尝试编写的程序遇到了一些问题。我必须创造一些油漆。我创建了两个类,在第一个类中,我编写了一个方法,为每个按钮(铅笔,线等)提供其编号和标题:
public JButton whichButton(Stringg title, final int number){
JButton theBut = new JButton();
theBut.setText(title);
theBut.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e){
currentAction = number;
System.out.println("actionNum:" + number);
}
});
return theBut;
}
现在出现了问题。我想用这个"数字"在第二节课,知道我的节目应该绘制哪个数字。我在第二个类的构造函数中添加了所有mouseListeners,MouseMotionListeners等,然后使用" if和else"将所选数字与特定数字的数量进行比较的命令。 到"得到"正确的数字我在第二课写了一个方法:
public int gentNumber(){
return numer;
}
因为我的数字应该被绘制的面板(绘图面板)是第二类的对象,我试图将其添加到方法" whichButton":
currentAction=drawingpanel.getNumber();
但它不起作用。 我知道我所写的内容可能有点混乱,但正如我所说,我用Java编程只用了一个月而且我不是这方面的专家。 我将非常感谢任何帮助如何使这项工作!
答案 0 :(得分:0)
我们没有太多代码来完全解决您的问题,但据我所知,您只需要在第二个类实例中引用第一个类实例即可检索currentAction
。应该是这样的东西:
class SecondClass extends JPanel { // probably some paintable component like this
private FirstClass firstClassInstance;
public SecondClass(FirstClass fci) { firstClassInstance = fci; }
public void paintComponent(Graphics g) { // what is called on repaint request
switch (firstClassInstance.getCurrentAction()) {
case 1: // draw rectangle
case 2: // draw circle
// etc.
}
}