0

我正在编写一个程序,它有一个 9x9 按钮,每个按钮从左上角开始从 1 到 81 到右边

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class MS extends JFrame implements ActionListener {

    static JFrame bframe;
    static JPanel p;

    public MS() {
        p = new JPanel(new GridLayout(9,9));  
        private static JButton[][] jgo = new JButton[9][9];
        int count = 1;
        for(int row=0; row < 9; row++)
            for(int col=0; col < col; col++) {
                jgo[row][col] = new JButton("%d",count);
                p.add(jgo[row][col]);
                count++;
            }
        }

    public static void main(String[] args) {  
        bframe=new MS();    //CREATE me and 
        bframe.add(p);      //add the JPanel

                bframe.setSize(810,810);
        bframe.setLocation(0,0);                //where my upper left hand corner goes
        bframe.setVisible(true);                //I start out invisible
        bframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  //need this for the window manager
    }
}

我的错误发生在我的构造函数中,它与我如何制作按钮和设置值有关。

4

2 回答 2

3

JButton没有任何JButton(String, int)用于格式化目的的构造函数,您可能想要这样做:

new JButton(Integer.toString(count))

代替

new JButton("%d",count)

旁注:

您不能private在构造函数中使用关键字:

 private static JButton[][] jgo = new JButton[9][9];
    ^ 

此行将立即退出:

for (int col = 0; col < col; col++) {

ascol < col将评估 astrue并且不会执行内部循环。

该语句只能在类块中有效。

静态变量通常被认为是糟糕的设计。变量bframep可以在本地范围内使用。

于 2013-03-11T23:29:48.667 回答
3

这里是 JButton 类的构造函数列表

JButton()
      Creates a button with no set text or icon.
JButton(Action a)
      Creates a button where properties are taken from the Action supplied.
JButton(Icon icon)
      Creates a button with an icon.
JButton(String text)
      Creates a button with text.
JButton(String text, Icon icon)
      Creates a button with initial text and an icon.

没有任何一款像您正在使用的那样。

JButton("%d",count); // JButton(String,int); or JButton(format,int);

相反,您可以使用

JButton(""+count)://JButton(String text)
于 2013-03-11T23:31:32.557 回答