elsemTim

Student Frame

Nov 15th, 2016
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.99 KB | None | 0 0
  1. package students.frame;
  2.  
  3. import java.util.Vector;
  4.  
  5. import java.awt.FlowLayout;
  6. import java.awt.BorderLayout;
  7.  
  8. import javax.swing.JFrame;
  9. import javax.swing.JLabel;
  10. import javax.swing.JList;
  11. import javax.swing.JPanel;
  12. import javax.swing.JScrollPane;
  13.  
  14. import javax.swing.JSpinner;
  15. import javax.swing.SpinnerModel;
  16. import javax.swing.SpinnerNumberModel;
  17. import javax.swing.SwingUtilities;
  18. import javax.swing.border.BevelBorder;
  19.  
  20. import students.logic.Group;
  21. import students.logic.ManagementSystem;
  22. import students.logic.Student;
  23.  
  24. public class StudentsFrame extends JFrame {
  25.  
  26.     ManagementSystem ms = null;
  27.     private JList grpList;
  28.     private JList stdList;
  29.     private JSpinner spYear;
  30.  
  31.     public StudentsFrame() throws Exception {
  32.         // Устанавливаем layout для всей клиентской части формы
  33.         getContentPane().setLayout(new BorderLayout());
  34.  
  35.         // Создаем верхнюю панел, где будет поле для ввода года
  36.         JPanel top = new JPanel();
  37.         // Устанавливаем для нее layout
  38.         top.setLayout(new FlowLayout(FlowLayout.LEFT));
  39.  
  40.         // Вставляем пояснительную надпись
  41.         top.add(new JLabel("Год обучения:"));
  42.         // Делаем спин-поле
  43.         //   1. Задаем модель поведения - только цифры
  44.         //   2. Вставляем в панель
  45.         SpinnerModel sm = new SpinnerNumberModel(2006, 1900, 2100, 1);
  46.         spYear = new JSpinner(sm);
  47.         top.add(spYear);
  48.  
  49.         // Создаем нижнюю панель и задаем ей layout
  50.         JPanel bot = new JPanel();
  51.         bot.setLayout(new BorderLayout());
  52.  
  53.         // Создаем левую панель для вывода списка групп
  54.         JPanel left = new JPanel();
  55.         // Задаем layout и задаем "бордюр" вокруг панели
  56.         left.setLayout(new BorderLayout());
  57.         left.setBorder(new BevelBorder(BevelBorder.RAISED));
  58.  
  59.         // Нам необходимо обработать ошибку при обращении к базе данных
  60.         Vector gr = null;
  61.         Vector st = null;
  62.         // Попробуем получить коннект к базе данных
  63.         ms = ManagementSystem.getInstance();
  64.         // Получаем список групп
  65.         gr = new Vector<Group>(ms.getGroups());
  66.         // Получаем список студентов
  67.         st = new Vector<Student>(ms.getAllStudents());
  68.         // Создаем надпись
  69.         left.add(new JLabel("Группы:"), BorderLayout.NORTH);
  70.         // Создаем визуальный список и вставляем его в скроллируемую
  71.         // панель, которую в свою очередь уже кладем на панель left
  72.         grpList = new JList(gr);
  73.         left.add(new JScrollPane(grpList), BorderLayout.CENTER);
  74.  
  75.         // Создаем правую панель для вывода списка студентов
  76.         JPanel right = new JPanel();
  77.         // Задаем layout и задаем "бордюр" вокруг панели
  78.         right.setLayout(new BorderLayout());
  79.         right.setBorder(new BevelBorder(BevelBorder.RAISED));
  80.  
  81.         // Создаем надпись
  82.         right.add(new JLabel("Студенты:"), BorderLayout.NORTH);
  83.         // Создаем визуальный список и вставляем его в скроллируемую
  84.         // панель, которую в свою очередь уже кладем на панель right
  85.         stdList = new JList(st);
  86.         right.add(new JScrollPane(stdList), BorderLayout.CENTER);
  87.  
  88.         // Вставляем панели со списками групп и студентов в нижнюю панель
  89.         bot.add(left, BorderLayout.WEST);
  90.         bot.add(right, BorderLayout.CENTER);
  91.  
  92.         // Вставляем верхнюю и нижнюю панели в форму
  93.         getContentPane().add(top, BorderLayout.NORTH);
  94.         getContentPane().add(bot, BorderLayout.CENTER);
  95.  
  96.         // Задаем границы формы
  97.         setBounds(100, 100, 600, 400);
  98.     }
  99.  
  100.     public static void main(String args[]) {
  101.         SwingUtilities.invokeLater(new Runnable() {
  102.            public void run() {
  103.                 try {
  104.                     // Мы сразу отменим продолжение работы, если не сможем получить
  105.                     // коннект к базе данных
  106.                    StudentsFrame sf = new StudentsFrame();
  107.                     sf.setDefaultCloseOperation(EXIT_ON_CLOSE);
  108.                     sf.setVisible(true);
  109.                 } catch (Exception ex) {
  110.                     ex.printStackTrace();
  111.                 }
  112.             }
  113.         });
  114.     }
  115. }
Add Comment
Please, Sign In to add comment