1、连连看里的连线是怎么实现的?...还有那种波浪的连线,爆炸效果...
2、我用JButton[][] bt = new JButton[8][8] 的二维按钮数组;
想用
for(int x = 0; x < bt.length; x++){
for(int y = 0; j < bt.length; y++){
bt[x][y].addMouseListener(new MouseAdepter(){
public void mousePressed(MouseEvent e){
GetInfo(x,y,bt[x][y]);//这个方法是用来记录按钮的信息的public 方法 }
});
}
}结果只有最后一个按钮bt[8][8]被监听了,其他的都没有反应,,,难道只有逐个的加监听吗???
谢谢了!!分不多大弟大妹大哥大姐大叔阿姨请见谅
2、我用JButton[][] bt = new JButton[8][8] 的二维按钮数组;
想用
for(int x = 0; x < bt.length; x++){
for(int y = 0; j < bt.length; y++){
bt[x][y].addMouseListener(new MouseAdepter(){
public void mousePressed(MouseEvent e){
GetInfo(x,y,bt[x][y]);//这个方法是用来记录按钮的信息的public 方法 }
});
}
}结果只有最后一个按钮bt[8][8]被监听了,其他的都没有反应,,,难道只有逐个的加监听吗???
谢谢了!!分不多大弟大妹大哥大姐大叔阿姨请见谅
for(x = 0; x < bt.length; x++){
for(y = 0; j < bt.length; y++){
bt[x][y].addMouseListener(new MouseAdepter(){
public void mousePressed(MouseEvent e){
GetInfo(x,y,bt[x][y]);//这个方法是用来记录按钮的信息的public 方法 }
});
}
} 结果只有最后一个按钮bt[8][8]被监听了,其他的都没有反应,,,难道只有逐个的加监听吗???
你的for(y=0;j<bt.length;y++)里面的j是什么玩意?是本来就打错还是发贴时弄错了
连连看的连线可以在连线事件中根据点的坐标关系实现:比如三条线消去时,情况就是(x1,y1),(x1,y2),(x2,y2),(x2,y3),第一个和最后一个点是button的坐标,中间点是允许的轨迹,如果ture,就删除button并在坐标上给出爆炸效果。这样应该包含了两条线和一条线的情况,因为y1,y2和y3,x1,和x2可以相等。把其他消去情况考虑周全应该可以实现
一个折点连
两个折点连
既然能判断了,那就在这里进行连线就好了例如 声明 变量 flag =false; 然后判断是那种连法:直接连不行就判断一个折点的 ,再不行就判断两个折点
总有一个行吧?(除非不能连) 如果某种算法连通了,flag =true;然后呵呵 ,用数组记录连接路径 ,必定都是矩阵嘛很好记录的
然后…… 化线就可以了吧,当时是这么想的,但是没有继续做下去。
要说清楚具体怎么画线很费事的,定好了算法,再考虑各种情况实现,可以说连线算是这个程序的一个重要部分(或许是最重要~)。
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/package jndi;
import java.awt.FlowLayout;
import javax.swing.*;
/**
*
* @author silence
*/
public class Link {
private JFrame indexFrame = new JFrame("good");
public JButton [][]myButton = new JButton[8][8];
public void enter()
{
indexFrame.setSize(500,500);
indexFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
indexFrame.setLayout(new FlowLayout());
for(int i=0;i<8;i++)
{
for(int j=0;j<8;j++)
{
myButton[i][j] = new JButton(""+i+j);
indexFrame.add(myButton[i][j]);
}
}
indexFrame.setVisible(true);
}
public static void main(String []args)
{
Link link = new Link();
link.enter();
}
}