Java 为什么赢了';t我的图形用户界面显示

Java 为什么赢了';t我的图形用户界面显示,java,swing,applet,awt,japplet,Java,Swing,Applet,Awt,Japplet,我正在尝试从文本文件、2D数组和toString()中dsiplay一个9x9网格;出来的很好,但我不知道为什么我的网格没有出现。我甚至试着从另一个类调用一个非常简单的事件按钮,看看它是否能工作,但仍然没有得到任何结果(我是从main方法调用它)。然而,当我在另一个类中运行这个简单的事件按钮时,它工作得很好,我不知道为什么它不工作 import static org.junit.Assert.assertEquals; import java.io.File; impo

我正在尝试从文本文件、2D数组和toString()中dsiplay一个9x9网格;出来的很好,但我不知道为什么我的网格没有出现。我甚至试着从另一个类调用一个非常简单的事件按钮,看看它是否能工作,但仍然没有得到任何结果(我是从main方法调用它)。然而,当我在另一个类中运行这个简单的事件按钮时,它工作得很好,我不知道为什么它不工作

    import static org.junit.Assert.assertEquals;

    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.PrintWriter;
    import java.util.InputMismatchException;
    import java.util.Scanner;
    import javax.swing.JFileChooser;
    import javax.swing.JTextField;

    import java.applet.Applet;
    import java.awt.GridLayout;

    public class SudokuBrdManager extends Applet implements SudokuBoardManager 
    {

    private static SudokuBrdManager myBoard;
    private static ButtonGrid button;
    private int [][] Board= new int[9][9];
    private String output;


    public static void main(String[] args)
    {
        myBoard = new SudokuBrdManager();
            try {
                //myBoard.setBoard();
            } catch (InputOutOfRangeException e) {
                 TODO Auto-generated catch block
                //e.printStackTrace();
            } catch (ValueNotValidException e) {
                // TODO Auto-generated catch block
                //e.printStackTrace();
            }    
        //System.out.println(myBoard.toString());   
    }

    public void setBoard () throws InputOutOfRangeException, ValueNotValidException
    {           
        JFileChooser chooser = new JFileChooser();
        int status;

        chooser.setDialogTitle("Select Sudoku Game File");
        status = chooser.showOpenDialog(null);

        if(status == JFileChooser.APPROVE_OPTION)
        {
            try
            {
                File inFile = chooser.getSelectedFile();
                myBoard.newGame(inFile);    
            }
            catch(InputMismatchException e)
            {
                e.printStackTrace();
            } catch (NumberFormatException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        Scanner scanner = new Scanner(myBoard.toString()).useDelimiter(",|\r\n");
        for (int i=0; i < 9; i++) 
        {
               for (int j=0; j < 9; j++) 
               {
                   myBoard.setValueAt(i, j, scanner.nextInt());
                   add(new JTextField(String.valueOf(Board[i][j])));
               }
        }
    }        

    }
    @Override
    public void setValueAt(int r, int c, int v) throws InputOutOfRangeException, ValueNotValidException 
    {
        Board[r][c] = v;
    }

    @Override
    public int getValueAt(int r, int c) throws InputOutOfRangeException 
    {
        return 0;
    }

    @Override
    public int[] displayPossibleValues(int r, int c)throws InputOutOfRangeException 
    {
        return null;
    }

    public String toString()
    {
            return output;
    }

    @Override
    public void newGame(File gameFile) 
    {
        {
            try
            {
                output = new Scanner(gameFile).useDelimiter("\\Z").next();
            }
                 catch (FileNotFoundException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                 }
            }
    }    
}
导入静态org.junit.Assert.assertEquals;
导入java.io.File;
导入java.io.FileNotFoundException;
导入java.io.FileReader;
导入java.io.PrintWriter;
导入java.util.InputMismatchException;
导入java.util.Scanner;
导入javax.swing.JFileChooser;
导入javax.swing.JTextField;
导入java.applet.applet;
导入java.awt.GridLayout;
公共类SudokuBrdManager扩展Applet实现SudokuBoardManager
{
私有静态SudokuBrdManager myBoard;
私有静态按钮RID按钮;
专用int[][]板=新int[9][9];
私有字符串输出;
公共静态void main(字符串[]args)
{
myBoard=新的SudokuBrdManager();
试一试{
//myBoard.setBoard();
}catch(InputOutOfRangeException e){
TODO自动生成的捕捉块
//e、 printStackTrace();
}捕获(值NotValidException e){
//TODO自动生成的捕捉块
//e、 printStackTrace();
}    
//System.out.println(myBoard.toString());
}
public void setBoard()抛出InputOutOfRangeException、ValueNotValidException
{           
JFileChooser chooser=新的JFileChooser();
智力状态;
setDialogTitle(“选择数独游戏文件”);
status=chooser.showOpenDialog(null);
if(status==JFileChooser.APPROVE\u选项)
{
尝试
{
File inFile=chooser.getSelectedFile();
myBoard.newGame(infle);
}
捕获(输入不匹配异常e)
{
e、 printStackTrace();
}捕获(数字格式){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
Scanner Scanner=new Scanner(myBoard.toString())。使用分隔符(“,|\r\n”);
对于(int i=0;i<9;i++)
{
对于(int j=0;j<9;j++)
{
myBoard.setValueAt(i,j,scanner.nextInt());
添加(新的JTextField(String.valueOf(Board[i][j]));
}
}
}        
}
@凌驾
public void setValueAt(int r、int c、int v)抛出InputForangeException、ValueNotValidException
{
董事会[r][c]=v;
}
@凌驾
public int getValueAt(int r,int c)抛出InputForangeException
{
返回0;
}
@凌驾
public int[]displayibleValues(int r,int c)抛出inputoFrangeException
{
返回null;
}
公共字符串toString()
{
返回输出;
}
@凌驾
public void newGame(文件gameFile)
{
{
尝试
{
输出=新扫描仪(游戏文件)。使用分隔符(\\Z”).next();
}
catch(filenotfounde异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
}
}    
}

因为
static void main()
不适用于小程序,所以它们的入口点和生命周期与标准应用程序不同。将初始化逻辑移动到
void init()

参考和


另外,你在这里混合了AWT和Swing。我认为应该使用JApplet而不是Applet。

可能我真的不太在意,但在这段代码中我看到的GUI的唯一部分是文件选择器。
/e.printStackTrace()对于断开的代码没有帮助!将其更改为
e.printStackTrace();//报告有用的建议
为了更快地获得更好的帮助,也发布一个.Se。现在我只是想显示网格,gui是add(新的JTextField(String.valueOf(Board[I][j]);我现在只是想显示一个9x9的文本框网格。我也改回了e.printStackTrace();我甚至只想显示一个文本框,但没有弹出小程序