编写基于javaswing的宿舍管理系统的代码实现寝室长登录后进入的寝室长管理界面,界面功能寝室长查看同寝室的室友信息的代码
时间: 2024-09-21 19:01:59 浏览: 13
在Java Swing中实现一个简单的宿舍管理系统,首先需要创建一个基本的GUI框架,然后设计登录界面。假设已经有一个`JFrame`作为主窗口,并且用户输入用户名和密码后通过验证进入了寝室长管理界面。
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class DormitoryManager extends JFrame {
private JPanel loginPanel; // 登录界面组件
private JPanel roommatePanel; // 室友信息显示面板
public DormitoryManager() {
setTitle("寝室长管理系统");
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 创建并设置登录界面
loginPanel = new JPanel();
JButton loginButton = new JButton("登录");
loginButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (isValidLogin()) { // 验证登录成功
showRoommatePanel();
} else {
JOptionPane.showMessageDialog(null, "用户名或密码错误");
}
}
});
loginPanel.add(loginButton);
add(loginPanel, BorderLayout.CENTER);
setVisible(true); // 显示初始登录界面
}
private boolean isValidLogin() {
// 这里只是一个示例,实际需要检查登录信息是否匹配数据库记录
String usernameInput = "室长姓名"; // 获取登录框的用户名
// ... (根据实际情况处理登录验证)
return true; // 返回登录验证结果
}
private void showRoommatePanel() {
replaceCurrentPanel(roommatePanel); // 替换当前显示的loginPanel为roommatePanel
roommatePanel = new JPanel(); // 创建室友信息展示面板
// 假设有个数组存放室友信息
Student[] roommates = createRoommateList(); // 模拟获取室友列表
for (Student roommate : roommates) {
JLabel nameLabel = new JLabel("室友名称: " + roommate.getName());
JPanel studentInfo = new JPanel();
studentInfo.add(nameLabel);
roommatePanel.add(studentInfo);
}
}
private JPanel createRoommateList() {
// 实现生成室友信息列表的逻辑
// 这部分代码取决于如何从数据库或数据源获取室友信息
Student[] roommates = new Student[5]; // 示例数据
// ...(填充室友信息)
return roommatePanel;
}
private void replaceCurrentPanel(JComponent panel) {
remove(loginPanel);
add(panel, BorderLayout.CENTER);
revalidate(); // 更新布局
repaint();
}
// ... 其他必要的GUI组件和事件处理
public static void main(String[] args) {
new DormitoryManager();
}
// Student 类用于表示室友
class Student {
String name;
// ... (其他属性)
}
}
```
在这个例子中,当寝室长点击登录按钮后,如果登录验证通过,会调用`showRoommatePanel()`方法替换现有的登录界面,显示一个包含室友信息的新面板。请注意这只是一个简化的示例,实际项目中还需要连接到数据库查询室友信息,并处理更复杂的用户交互。