当前位置: 技术问答>java相关
请帮我看看这段代码,应该很简单!!!!
来源: 互联网 发布时间:2015-05-24
本文导语: package kcsj1; import java.awt.*; import java.awt.event.*; import java.applet.*; public class kcsj1 extends Applet { Button BT=new Button("START"); TextField TF=new TextField("在此显示数据"); public void init() { TF.selectAll(); BT.addMouseListener(new B...
package kcsj1;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class kcsj1 extends Applet
{
Button BT=new Button("START");
TextField TF=new TextField("在此显示数据");
public void init()
{
TF.selectAll();
BT.addMouseListener(new BT_Listener());
add(TF);
add(BT);
}
class BT_Listener extends MouseAdapter
{
public void mouseclicked(MouseEvent e)
{
TF.setText("lalala");
}
}
}
*请问为什么在ie中点那个按钮,没反映啊;
*怎样通过这样的模式(TF.setText("lalala")),提取数据库中的数据;下面这样行吗
import Java.SQL.*;
import Java.awt.*;
import Java.awt.event.*;
import Java.applet.Applet;
public class kcsj extends Applet
{
Button BT=new Button("START");
TextField TF=new TextField("在此显示数据");
public void init()
{
TF.selectAll();
BT.addMouseListener(new BT_Listener());
add(TF);
add(BT);
}
String accessDriver=("");
String accessURL=("");
String accessUser=("");
String accessPassword=("");
try
{
class.forname(accessDriver);
TF.setText("driver ok");
}
catch (Exception e)
{
TF.setText("driver fail");
e.printStackTrace();
}
try
{
Connection accessCon=DriverManager.getConnection(accessURL,accessUser,accessPassword);
if(!accessCon.isclosed())
TF.setText("connect ok");
Statement ST;
ResultSet RS;
String string="select * ……";
ST=accessCon.createStatement();
RS=ST.execueQuery(string);
RS.close();
accessCon.close();
}
catch(SQLException ex)
{
TF.setText("connect fail");
ex.printStackTrace();
}
class BT_Listener extends MouseAdapter
{
public void mouseclicked(MouseEvent e)
{
String AS=RS.getString();
TF.setText(AS);
}
}
}
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class kcsj1 extends Applet
{
Button BT=new Button("START");
TextField TF=new TextField("在此显示数据");
public void init()
{
TF.selectAll();
BT.addMouseListener(new BT_Listener());
add(TF);
add(BT);
}
class BT_Listener extends MouseAdapter
{
public void mouseclicked(MouseEvent e)
{
TF.setText("lalala");
}
}
}
*请问为什么在ie中点那个按钮,没反映啊;
*怎样通过这样的模式(TF.setText("lalala")),提取数据库中的数据;下面这样行吗
import Java.SQL.*;
import Java.awt.*;
import Java.awt.event.*;
import Java.applet.Applet;
public class kcsj extends Applet
{
Button BT=new Button("START");
TextField TF=new TextField("在此显示数据");
public void init()
{
TF.selectAll();
BT.addMouseListener(new BT_Listener());
add(TF);
add(BT);
}
String accessDriver=("");
String accessURL=("");
String accessUser=("");
String accessPassword=("");
try
{
class.forname(accessDriver);
TF.setText("driver ok");
}
catch (Exception e)
{
TF.setText("driver fail");
e.printStackTrace();
}
try
{
Connection accessCon=DriverManager.getConnection(accessURL,accessUser,accessPassword);
if(!accessCon.isclosed())
TF.setText("connect ok");
Statement ST;
ResultSet RS;
String string="select * ……";
ST=accessCon.createStatement();
RS=ST.execueQuery(string);
RS.close();
accessCon.close();
}
catch(SQLException ex)
{
TF.setText("connect fail");
ex.printStackTrace();
}
class BT_Listener extends MouseAdapter
{
public void mouseclicked(MouseEvent e)
{
String AS=RS.getString();
TF.setText(AS);
}
}
}
|
第二个问题,你的方法我觉得不行。
因为,在APPLET初始化后,已完成与数据库的交互,而且也关闭了RS
然后,当你监听到Mouse事件去取值时,RS中已无值可取。
解决思路:
可以把数据库返回数据放到一个内部类中,然后Mouse响应事件从内部类中取值。
因为,在APPLET初始化后,已完成与数据库的交互,而且也关闭了RS
然后,当你监听到Mouse事件去取值时,RS中已无值可取。
解决思路:
可以把数据库返回数据放到一个内部类中,然后Mouse响应事件从内部类中取值。
|
大小写问题,这个:
public void mouseclicked(MouseEvent e)
{
TF.setText("lalala");
}
应该改成这个:
public void mouseClicked(MouseEvent e)
{
TF.setText("lalala");
}
public void mouseclicked(MouseEvent e)
{
TF.setText("lalala");
}
应该改成这个:
public void mouseClicked(MouseEvent e)
{
TF.setText("lalala");
}
|
class BT_Listener extends MouseAdapter
{
public void mouseclicked(MouseEvent e)
{
String AS=RS.getString();
TF.setText(AS);
}
}
String AS=RS.getString("columnName"); or
String AS=RS.getString(n); n is number
在你试图获得内容的时候,ResultSet 可能已经关闭,此时你无法得到
你想要得内容,如果是鼠标事件没有响应你可以添加一个响应鼠标事件的
提示信息,如果鼠标事件已经响应,则说明你在获得查询内容的时候,
ResultSet 是空的,没有内容,有可能是你的rs.close();
试以下,在获得内容后在rs.close()
{
public void mouseclicked(MouseEvent e)
{
String AS=RS.getString();
TF.setText(AS);
}
}
String AS=RS.getString("columnName"); or
String AS=RS.getString(n); n is number
在你试图获得内容的时候,ResultSet 可能已经关闭,此时你无法得到
你想要得内容,如果是鼠标事件没有响应你可以添加一个响应鼠标事件的
提示信息,如果鼠标事件已经响应,则说明你在获得查询内容的时候,
ResultSet 是空的,没有内容,有可能是你的rs.close();
试以下,在获得内容后在rs.close()
|
应该把 mouseclicked 改成 mouseClicked
大些,否则等于没有重载 mouseAdapter的mouseClicked 函数/
大些,否则等于没有重载 mouseAdapter的mouseClicked 函数/
|
楼上的有道理:)
最好数据库取数据的部分全部放到你的ActionPerform中去,或者MouseClicked
最好数据库取数据的部分全部放到你的ActionPerform中去,或者MouseClicked