javaMVC模拟数据请求,客户端勾选若干学生后提交数据,服务器获得学生信息后跳转到selected页面,以表格形式显示选中的学生列表代码效果图
时间: 2024-03-22 11:42:14 浏览: 30
以下是简单的Java MVC模拟数据请求,实现客户端勾选若干学生后提交数据,服务器获得学生信息后跳转到selected页面,以表格形式显示选中的学生列表的代码:
Model.java:
```java
public class Model {
private String name;
private int age;
private boolean isSelected;
public Model(String name, int age, boolean isSelected) {
this.name = name;
this.age = age;
this.isSelected = isSelected;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public boolean isSelected() {
return isSelected;
}
public void setSelected(boolean selected) {
isSelected = selected;
}
}
```
View.java:
```java
public class View {
public static void main(String[] args) {
// Create sample data
List<Model> models = new ArrayList<>();
models.add(new Model("Alice", 18, false));
models.add(new Model("Bob", 20, false));
models.add(new Model("Charlie", 22, false));
models.add(new Model("David", 24, false));
// Display the data in a table
JFrame frame = new JFrame();
JTable table = new JTable(new Object[][] {}, new Object[] { "Name", "Age", "Selected" });
for (Model model : models) {
((DefaultTableModel) table.getModel()).addRow(new Object[] { model.getName(), model.getAge(),
model.isSelected() });
}
frame.add(new JScrollPane(table));
frame.pack();
frame.setVisible(true);
}
}
```
Controller.java:
```java
public class Controller {
private List<Model> models;
public Controller() {
// Initialize the data
models = new ArrayList<>();
models.add(new Model("Alice", 18, false));
models.add(new Model("Bob", 20, false));
models.add(new Model("Charlie", 22, false));
models.add(new Model("David", 24, false));
}
public List<Model> getModels() {
return models;
}
public void setModels(List<Model> models) {
this.models = models;
}
public void updateSelected(int[] selectedIndices) {
for (int i = 0; i < models.size(); i++) {
if (Arrays.binarySearch(selectedIndices, i) >= 0) {
models.get(i).setSelected(true);
} else {
models.get(i).setSelected(false);
}
}
}
}
```
SelectedView.java:
```java
public class SelectedView {
public static void main(String[] args) {
// Create the controller
Controller controller = new Controller();
// Create the UI
JFrame frame = new JFrame();
// Create the table
JTable table = new JTable(new Object[][] {}, new Object[] { "Name", "Age" });
// Create the button
JButton button = new JButton("Show Selected");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// Update the table with the selected models
List<Model> selectedModels = new ArrayList<>();
for (Model model : controller.getModels()) {
if (model.isSelected()) {
selectedModels.add(model);
}
}
DefaultTableModel tableModel = (DefaultTableModel) table.getModel();
tableModel.setRowCount(0);
for (Model model : selectedModels) {
tableModel.addRow(new Object[] { model.getName(), model.getAge() });
}
}
});
// Create the checkbox list
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
for (Model model : controller.getModels()) {
JCheckBox checkBox = new JCheckBox(model.getName());
checkBox.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int[] selectedIndices = getSelectedIndices(panel);
controller.updateSelected(selectedIndices);
}
});
panel.add(checkBox);
}
// Add the components to the frame
frame.add(panel, BorderLayout.WEST);
frame.add(table, BorderLayout.CENTER);
frame.add(button, BorderLayout.SOUTH);
// Show the frame
frame.pack();
frame.setVisible(true);
}
private static int[] getSelectedIndices(JPanel panel) {
List<Integer> selectedIndices = new ArrayList<>();
for (int i = 0; i < panel.getComponentCount(); i++) {
JCheckBox checkBox = (JCheckBox) panel.getComponent(i);
if (checkBox.isSelected()) {
selectedIndices.add(i);
}
}
return selectedIndices.stream().mapToInt(i -> i).toArray();
}
}
```
这些代码实现了一个简单的Java MVC模式应用程序,允许用户选择学生并在另一个页面中显示所选学生的列表。