我要在一个面板上放15*15的按钮,我需要知道点击的时候是哪个按钮,所以我自己定义一个类继承JButton,然后添加两个属性,然后用for循环来添加按钮,但是按钮不显示,当鼠标移到按钮上的时候才会显示出来,
代码如下:
public static class mybutton extends JButton
{
private int x;
private int y;
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
}
添加按钮的代码如下:
static JFrame jf2;
static JPanel j21;
static JPanel j22;
static int x=15;
static int y=15;
private static void show(Socket socket)
{
jf2=new JFrame();
jf2.setSize(600,500);
jf2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
j21=new JPanel();
j21.setLayout(new GridLayout(x,y));
j22=new JPanel();
for(int i=0;i<x;i++)
{
for(int j=0;j<y;j++)
{
mybutton jbtn=new mybutton();
jbtn.x=i;
jbtn.y=j;
jbtn.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
mybutton jbtn=(mybutton)e.getSource();
JOptionPane.showMessageDialog(null, jbtn.x+"+"+jbtn.y, "", JOptionPane.INFORMATION_MESSAGE);
}
});
j21.add(jbtn);
}
}
JButton jbtna=new JButton();
jbtna.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
jf2.validate();
jf2.repaint();
}
});
j22.add(jbtna);
jf2.add(j21,BorderLayout.CENTER);
jf2.add(j22,BorderLayout.EAST);
jf2.setVisible(true);
}
求解。