在下面的代码中在网络上制作项目我希望在继续使用SecondFrame类之后首先完成主机类的处理......
类SecondFrame {
SecondFrame()
{
Class.forName("com.mysql.jdbc.Driver");
Connection con1=DriverManager.getConnection("jdbc:mysql://localhost:3306/net","root","simer");
PreparedStatement ps=con1.prepareStatement("select * from record where email=?");
ps.setString(1,c1);
ResultSet rs =ps.executeQuery();
while(rs.next())
{
b=rs.getDouble("balance");
}
if(b>0)
{
long startTime = System.nanoTime();
System.out.println("balance is"+b);
System.out.println("connected");
d=f1.getText();
new mainframe(d); \\main frame class
long endTime = System.nanoTime();
double totalTime = endTime - startTime;
double et = totalTime/1000000000;
System.out.println(et);
double bal = b - (et*(.4));
System.out.println(bal);
PreparedStatement ps1=con.prepareStatement("UPDATE record SET balance=? where email=? ");
ps1.setDouble(1,bal);
ps1.setString(2,c1);
ps1.executeUpdate();
}
在线程的帮助下尝试但无法做到这一点,在上面的余额中只扣除了几分钟甚至没有被识别但是想要直到主机类没有被扣除的余额...... < / p>
答案 0 :(得分:3)
你的&#34; p&#34; class应该是一个模态JDialog,而不是一个JFrame。这样调用代码将保持不变,并且用户无法在主窗口上工作,直到处理完对话窗口,我认为是您想要的行为。
另外,您需要学习并使用Java naming conventions。变量名都应以较低的字母开头,而类名以大写字母开头。此外,您应该避免使用简单的变量名称,例如b
或s
,除非它们被用于琐碎的目的,例如for循环的索引。而是使用具有某种含义的名称,以便您的代码成为自我评论。
遵循这些建议以及遵循良好的代码格式化实践将允许其他人(例如我们!)更好地理解您的代码,更重要的是,将允许您未来的自我更好地理解您在6个月前的想法你写了代码。
此外,你应该避免使用null布局,因为这会使GUI非常不灵活,虽然它们在一个平台上看起来很好但在大多数其他平台或屏幕分辨率上看起来很糟糕,并且很难更新和维护