关于的鼠标监听器和textarea的问题 20C

还有一个没贴出来的背景类,就是和Map1类一起构造了一个面板,其中包含一个textarea,第二个类是鼠标监听器的执行类,第三个类是驱动类。麻烦各位大神教教我,该怎么才能执行完监听类里的move函数之后在textarea里输出一行字符,谢谢啦

大家别看代码多,好多都跟这个问题没啥关系。
麻烦大家指点一下

 public Map1(JFrame frame,JButton button[][],JTextArea textarea)
    {
    a=new background(frame,panel1,panel2,panel3,panel4,textarea);
        for(int a=0;a<9;a++)
        {
            button[0][a]=new JButton(bank2);
        }
        for(int a=0;a<9;a++)
        {
            button[12][a]=new JButton(bank1);
        }
        for(int a=1;a<12;a++)
        {
            for(int b=0;b<9;b++)
            {
                button[a][b]=new JButton(water1);
            }
        }
        //下面是第一个地图的
        button[2][0]=new JButton(stump1);
        button[6][0]=new JButton(stump1);
        button[8][0]=new JButton(stump1);
        button[10][0]=new JButton(stump1);
        button[3][1]=new JButton(water4);
        button[5][1]=new JButton(water3);
        button[5][2]=new JButton(water4);
        button[6][2]=new JButton(stump1);
        button[8][2]=new JButton(water4);
        button[2][4]=new JButton(water4);
        button[4][4]=new JButton(stump1);
        button[8][4]=new JButton(stump1);
        button[3][6]=new JButton(water3);
        button[6][6]=new JButton(stump1);
        button[12][4]=new JButton(stump2_man);
        button[0][4]=new JButton(stump3);
        button[9][0]=new JButton(plank2);
        button[9][4]=new JButton(plank2);
        button[10][4]=new JButton(plank2);
        button[11][4]=new JButton(plank2);
        button[6][3]=new JButton(plank1);
        button[6][4]=new JButton(plank1);
        button[6][5]=new JButton(plank1);
        for(int a=0;a<13;a++)
        {
           for(int b=0;b<9;b++)
           {
             panel2.add(button[a][b]);
             button[a][b].setBorderPainted(false); 
           }
    }
    setTextArea(textarea,panel3);
}
public int getdecidePeopleMap1(int i,int j)
{
    return decidePeopleMap1[i][j];
}
public int getdecideStumpMap1(int i,int j)
{
    return decideStumpMap1[i][j];
}
    public void setTextArea(JTextArea textareabackground,JPanel panel)
{
    textareabackground = new JTextArea(180, 440);
    textareabackground.setFont(new Font(null, Font.BOLD, 15));
    textareabackground.setLineWrap(true);
    textareabackground.setWrapStyleWord(true);
    textareabackground.setBackground(Color.blue);
    scrollpane1 = new JScrollPane(textareabackground);
    scrollpane1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
    panel.add("Center", scrollpane1);
}
}

public class Action implements MouseListener{
  public Action(JButton button1[][],int[][] decidePeople1,int[][] decideStump1)
    {
        button=new JButton[13][9];
        decidePeople=new int[13][9];
        decideStump=new int[13][9];
        button = button1;
        decidePeople=decidePeople1;
        decideStump=decideStump1;
        Action[][] buttonListener=new Action[13][9];
        for(int a=0;a<13;a++)
        {
            for(int b=0;b<9;b++)
            {
               button1[a][b].addMouseListener(this);
            }
        }
    }
    public void mouseReleased(MouseEvent e)
    { 
        outterloop:if(e.getButton() == MouseEvent.BUTTON1)//左键该执行的操作(移动小人)
         { 
            for(ymove=0;ymove<13;ymove++)//行的位置
            {
                for(xmove=0;xmove<9;xmove++)//列的位置
                {
                    if(e.getSource()==button[ymove][xmove])
                    {   
                        canmove(button,ymove,xmove);
                        if(canMove==true)
                        {
                            move(button,ymove,xmove);
                        }
                        ymove=0;
                        xmove=0;
                        break outterloop;
                    }
                }
            }
         }
                }
                }
 public class Test
{  
     public static void main(String[] args)
   {
    JFrame frame1=new JFrame();
    JButton[][] button1=new JButton[13][9];
    int[][] decideP=new int[13][9];
    int[][] decideS =new int[13][9];
    Map1 a =new Map1( frame1,button1,textarea);//初始化地图
    decideP[row][b]=a.getdecidePeopleMap1(row,b);
    decideS[row][b]=a.getdecideStumpMap1(row,b);
    Action b= new Action(button1,decideP,decideS);
    frame1.setVisible(true);
   }
}

3个回答

执行完move函数,再设置你的textArea值,textArea.setText(“你想输出的文字”);

可以将textarea设置为全局变量,在move类中进行textarea.set()或者append()

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问