?? employeeswingview.java
字號:
package com.mycompany.myapp.view.swing;import java.awt.BorderLayout;import java.awt.Container;import java.awt.Dimension;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.util.List;import java.util.Vector;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.table.DefaultTableModel;import com.mycompany.myapp.control.ControllerInterface;import com.mycompany.myapp.model.Employee;import com.mycompany.myapp.service.EmployeeManager;public class EmployeeSwingView implements ActionListener { private ControllerInterface<Employee, Long> controller; private JTable table = null; private DefaultTableModel defaultModel = null; public EmployeeSwingView( ControllerInterface<Employee, Long> employeeController, EmployeeManager manager) { this.controller = employeeController; //manager.registerObserver((EmployeeObserver) this); } /** * Create all Swing components */ public void createView() { JFrame f = new JFrame(); String[] columnName = { "id", "first name", "last name", "phone number", "address" }; List<Employee> employeeList = controller.getAll(); Object[][] data = new Object[employeeList.size()][columnName.length]; for (int i = 0; i < employeeList.size(); i++) { Employee employee = (Employee) employeeList.get(i); data[i] = new String[] { String.valueOf(employee.getId()), employee.getFirstName(), employee.getLastName(), employee.getPhoneNumber(), employee.getAddress() }; } defaultModel = new DefaultTableModel(data, columnName); table = new JTable(defaultModel); table.setPreferredScrollableViewportSize(new Dimension(450, 100)); JScrollPane s = new JScrollPane(table); JPanel panel = new JPanel(); JButton b = new JButton("Add"); panel.add(b); b.addActionListener(this); b = new JButton("Save"); panel.add(b); b.addActionListener(this); b = new JButton("Remove"); panel.add(b); b.addActionListener(this); Container contentPane = f.getContentPane(); contentPane.add(panel, BorderLayout.NORTH); contentPane.add(s, BorderLayout.CENTER); f.setTitle("EmployeeCRUD"); f.pack(); f.setVisible(true); f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { } }); } public void actionPerformed(ActionEvent e) { int selectedRowIndex = table.getSelectedRow(); if (e.getActionCommand().equals("Add")) { List<Employee> employeeList = controller.getAll(); Vector newRowVector = new Vector(); String newElm; if(!employeeList.isEmpty()){ Employee lastEmployee = (Employee) employeeList.get(employeeList .size() - 1); newElm = String.valueOf(lastEmployee.getId() + 1); } else{ newElm = "0"; } newRowVector.addElement(newElm); defaultModel.addRow(newRowVector); } else if (e.getActionCommand().equals("Remove")) { String id = (String) defaultModel.getValueAt(selectedRowIndex, 0); controller.remove(Long.valueOf(id)); defaultModel.removeRow(selectedRowIndex); } else if (e.getActionCommand().equals("Save")) { String id = (String) defaultModel.getValueAt(selectedRowIndex, 0); String firstName = (String) defaultModel.getValueAt( selectedRowIndex, 1); String lastName = (String) defaultModel.getValueAt( selectedRowIndex, 2); String phoneNumber = (String) defaultModel.getValueAt( selectedRowIndex, 3); String address = (String) defaultModel.getValueAt(selectedRowIndex, 4); Employee employee = null; employee = controller.get(Long.valueOf(id)); if (employee != null) { employee.setFirstName(firstName); employee.setLastName(lastName); employee.setPhoneNumber(phoneNumber); employee.setAddress(address); controller.update(employee); } else { employee = new Employee(); employee.setFirstName(firstName); employee.setLastName(lastName); employee.setPhoneNumber(phoneNumber); employee.setAddress(address); controller.insert(employee); } } }}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -