【问题标题】:Why isn't this JOptionPane showing up?为什么这个 JOptionPane 没有出现?
【发布时间】:2013-11-10 20:26:49
【问题描述】:

我正在尝试显示一个 JOptionPane 输入对话框,然后让视图出现,但我不确定为什么它没有出现,视图弹出但没有输入对话框,我尝试注释掉视图部分并什么都没发生

这是 JOptionPane 输入对话框所在的控制器

package model;

import java.util.*;
import javax.swing.*;




public class Controller {
    private View myView;
    private NQueensModel myModel;
    private static int int1, possibilities;
    private static String intString;

    public static void main(String[] args)
    {
        intString = JOptionPane.showInputDialog(null, "How many rows/cols?");
        int1 = Integer.parseInt(intString);
    }

    public Controller()
    {
        myView = new View(this);

    }
    public void solve()
    {

        myView.doViewGrid();
        myModel = new NQueensModel(int1);
        myModel.solvePuzzle();
        possibilities = myModel.getPossibilities();
        myView.addButtons();
        myView.setPossibilitiesLabel(possibilities);
        myView.revalidate();
        myView.repaint();




    }

    public boolean[][] getMyBoard()
    {
        return myModel.getBoard();
    }



}

这里是第一次调用控制器的主类

package model;

public class queensBasics
{
    public static void main(String[] args)
    {
        Controller myController = new Controller();
    }
}

【问题讨论】:

    标签: java swing function user-interface methods


    【解决方案1】:

    声明

    intString = JOptionPane.showInputDialog(null, "How many rows/cols?");
    

    位于Controller 类的main 方法中,而不是位于应用程序入口点queensBasics 中。只需将此语句移至后者

    public class QueenBasics {
      public static void main() {
         String intString = JOptionPane.showInputDialog(null, "How many rows/cols?");
         // process/pass in intString to Controller 
         ...
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-03
      • 1970-01-01
      • 1970-01-01
      • 2022-10-07
      • 2012-10-07
      • 2015-02-06
      • 2016-01-05
      相关资源
      最近更新 更多