如何在不同的类

时间:2018-04-02 08:30:21

标签: java class variables paint

所以我是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编程只用了一个月而且我不是这方面的专家。 我将非常感谢任何帮助如何使这项工作!

1 个答案:

答案 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.
    }
}