双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

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

Y19521 Y19521 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我要在一个面板上放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);
}
求解。
...全文
评论
收藏 已收藏
分享
返回顶部
Y19521
Java 51,407 成员 86,134 内容