Wanbolin 2018-05-23 15:41 采纳率: 33.3%
浏览 586
已结题

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

还有一个没贴出来的背景类,就是和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条回答 默认 最新

  • devmiao 2018-05-23 15:52
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 机器学习教材中的例题询问
  • ¥15 求.net core 几款免费的pdf编辑器
  • ¥15 C# P/Invoke的效率问题
  • ¥20 thinkphp适配人大金仓问题
  • ¥20 Oracle替换.dbf文件后无法连接,如何解决?(相关搜索:数据库|死循环)
  • ¥15 数据库数据成问号了,前台查询正常,数据库查询是?号
  • ¥15 算法使用了tf-idf,用手肘图确定k值确定不了,第四轮廓系数又太小才有0.006088746097507285,如何解决?(相关搜索:数据处理)
  • ¥15 彩灯控制电路,会的加我QQ1482956179
  • ¥200 相机拍直接转存到电脑上 立拍立穿无线局域网传
  • ¥15 (关键词-电路设计)