Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jbutton问题与文本文件和数据库问题_Java_Mysql - Fatal编程技术网

Java Jbutton问题与文本文件和数据库问题

Java Jbutton问题与文本文件和数据库问题,java,mysql,Java,Mysql,我有下面的代码,我正在努力使其工作。我必须读取包含问题的文本文件的内容,并将其保存到数据库测试系统 我面临的主要问题是它没有插入到数据库中。我不确定它是否正在读取文本文件 我从游戏机器人那里得到了帮助,根据他上面的解释,我成功地得到了这个,但现在它不仅插入,而且我的上传按钮变得没有反应,它现在不会触发任何事件。我真的需要帮助。 任何帮助都将不胜感激 例如,对于下面的问题,我将在我的类别中包含以下问题:收藏,对于我的问题:其中哪一个不是“现实生活”收藏的示例?为了我的追求,a:a。在纸牌游戏中你持

我有下面的代码,我正在努力使其工作。我必须读取包含问题的文本文件的内容,并将其保存到数据库测试系统

我面临的主要问题是它没有插入到数据库中。我不确定它是否正在读取文本文件

我从游戏机器人那里得到了帮助,根据他上面的解释,我成功地得到了这个,但现在它不仅插入,而且我的上传按钮变得没有反应,它现在不会触发任何事件。我真的需要帮助。
任何帮助都将不胜感激

例如,对于下面的问题,我将在我的类别中包含以下问题:收藏,对于我的问题:其中哪一个不是“现实生活”收藏的示例?为了我的追求,a:a。在纸牌游戏中你持有的牌。为了得到正确的选项答案,我应该在数据库表中插入d

问题是:

收藏以下哪一项不是“真实”收藏的示例? A.在纸牌游戏中你持有的牌。 B您最喜爱的歌曲存储在计算机中。 C足球队的队员。 D一本书的页数

d


如果需要,可以使用
ActionListener
扩展
JPanel
JFrame
或任何其他视图类,但通常最好为
ActionListener
创建一个单独的类

public class MyActionListener extends ActionListener{

   String myVariable;

   public MyActionListner(String variableINeedForTheAction){    // pass the parameters you need in the constructor or getter method
      this.myVariable = variableINeedForTheAction;
   }

   @Override
   public void actionPerformed(ActionEvent e) {
         this.myVariable = "actionPerformed";     // then, when the action gets performed you can access that variable
   }
}


public class MyFrame extends JFrame{
   //some code
   JButton myButton = new JButton();
   String text = "";
   MyActionListner buttonListener = new MyActionListener(text);   // instantiate your own action listener class and pass the variables you need for performing the action
   myButton.addActionListener(buttonListener);       // add the listener to some button
}
所有这些都是为了将视图与程序中的控制器分开。假设您在另一个框架或面板中的某个位置有另一个按钮,并且希望它执行与此按钮相同的操作,那么您只需注册动作侦听器的另一个实例,而无需复制整个代码

无论如何,我猜您在执行的操作中做了太多的工作,整个GUI变得没有响应,因为您正在从光盘读取文件,并将其内容放入actionPerformed方法中的数据库

您可以尝试使用一个线程来处理所有上传/读/写内容:

public void actionPerformed(ActionEvent e){
    Thread myThread = new Thread(new Runnable(){
        public void run(){
            System.out.println(Thread.currentThread().getName() + " is running");

            File filePathString = new File(file);
            // load the file
            Scanner scanner = new Scanner(file);
            //... do the reading and writing here

            System.out.println(Thread.currentThread().getName() + " is finished"); 
        }
    }, "Upload Thread");
    myThread.start();
}

事实上,正如许多人所建议的,我真正需要的东西是线和秋千工人

所以我最终得到了这样的结果:

try 
                    {

                Runnable r = new Runnable() 
                  {
                     @Override
                     public void run()
                     {


                        doWork();

                     }
                  };
     new Thread(r).start();

        }

        /*      catch(SQLException ex)
            {
                ex.printStackTrace();
            }*/ 

            catch(Exception e)
            {
                e.printStackTrace();
                e.getCause();
            }

你能正确格式化你的代码吗?那简直是不可读的。。。我也不明白你的问题,我已经编辑并提出了一些问题祝你好运!不要对ActionListener中可能需要的任何值感到困惑。例如,如果您希望在传输完成时在
JLabel
中显示一些消息,只需将完整的
JLabel
变量传递给ActionListener(例如在构造函数中)–您将能够在那里设置文本。
try 
                    {

                Runnable r = new Runnable() 
                  {
                     @Override
                     public void run()
                     {


                        doWork();

                     }
                  };
     new Thread(r).start();

        }

        /*      catch(SQLException ex)
            {
                ex.printStackTrace();
            }*/ 

            catch(Exception e)
            {
                e.printStackTrace();
                e.getCause();
            }