【发布时间】:2015-10-30 12:25:14
【问题描述】:
这里是编程新手。我正在使用 Swing、JDBC(Oracle) 创建一个简单的登录应用程序。它在大多数情况下按预期工作。该应用程序有 3 个类 - Logic、UI 和 DBConnection。
请参考这里的完整代码:Full Code
1. LoginLogic.java
public class LoginLogic {
LoginUI lu;
public LoginLogic() {
lu = new LoginUI();
}
public LoginLogic(ResultSet rs) {
process(rs);
}
private void process(ResultSet rs) {
try {
if (rs.next()) {
lu.loginSuccess();
} else {
lu.loginFailed();
}
} catch (SQLException e) {
// TODO: handle exception
}
}
public static void main(String[] args) {
new LoginLogic();
}
}
最初,我直接显示了一个 JOptionPane 来代替 loginSuccess() 和 loginFailed() 方法,它按预期工作。但我想将所有 UI 功能委托给 UI 类,所以我在 UI 类中创建了这两个方法
void loginSuccess() {
JOptionPane.showMessageDialog(null, "Login Successful!");
}
void loginFailed() {
JOptionPane.showMessageDialog(null, "Login Failed!");
}
但是这些方法并没有被我在构造函数中创建的 UI 对象调用。没有错误,但也没有 JOptionPane。
如何在 process() 方法中使用 UI 对象引用 lu 来调用 UI 类的方法?
【问题讨论】:
-
你的做法在我看来不错。您是否尝试使用调试器?你也应该为 TODO 做点什么,也许有一个
SQLException而你因为 TODO 而看不到它 -
你有两个构造函数,但你只调用第一个(不带参数)。你怎么打电话给
LoginLogic(ResultSet rs)? -
我现在已经更新了问题,并提供了指向整个代码的链接,应该消除对调用的混淆。
标签: java swing object constructor