继承JButton界面刷新有问题求解

Y19521 2015-06-30 02:54:15
我要在一个面板上放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);
}
求解。
...全文
91 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

50,710

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧