还有一个没贴出来的背景类,就是和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);
}
}