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();
}