继承JButton界面刷新有问题求解
我要在一个面板上放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);
}
求解。

代码如下:
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);
}
求解。
...全文
相关推荐
JButton去除边框
类似eclipse工具栏的效果,无悬浮,按钮无边框,悬浮时候呈现边框
Swing中JTABLE中添加JBUTTON控件
swing 中JTABLE中添加控件的例子 可以引申出添加很多控件
java JButton的使用
java JButton的使用 java JButton的使用 java JButton的使用
java 在JButton上设置快捷键
java 在JButton上设置快捷键 java 在JButton上设置快捷键 java 在JButton上设置快捷键
Java swing 中JButton的使用
Java swing 中JButton的使用 Java swing 中JButton的使用



