import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class MenuBar extends JMenuBar { private DataTableModel tableModel; public MenuBar(DataTableModel tableModel) { this.tableModel = tableModel; // Create add submenu JMenu addMenu = new JMenu("Добавить"); // Row add items JMenuItem addRowItem = new JMenuItem("Новый ряд (крайний)"); addRowItem.addActionListener(new MenuActionAddRow(tableModel, false)); addMenu.add(addRowItem); JMenuItem addPositionedRowItem = new JMenuItem("Новый ряд (позиция)"); addPositionedRowItem.addActionListener(new MenuActionAddRow(tableModel, true)); addMenu.add(addPositionedRowItem); // Column add items JMenuItem addColumnItem = new JMenuItem("Новый столбец (крайний)"); addColumnItem.addActionListener(new MenuActionAddColumn(tableModel, false)); addMenu.add(addColumnItem); JMenuItem addPositionedColumnItem = new JMenuItem("Новый столбец (позиция)"); addPositionedColumnItem.addActionListener(new MenuActionAddColumn(tableModel, true)); addMenu.add(addPositionedColumnItem); // Create delete submenu JMenu deleteMenu = new JMenu("Удалить"); // Row delete JMenuItem deleteRowItem = new JMenuItem("Удалить строку"); deleteRowItem.addActionListener(new MenuActionDeleteRow(tableModel)); deleteMenu.add(deleteRowItem); // Column delete JMenuItem deleteColumnItem = new JMenuItem("Удалить столбец"); deleteColumnItem.addActionListener(new MenuActionDeleteColumn(tableModel)); deleteMenu.add(deleteColumnItem); // Create main menu JMenu menu = new JMenu("Меню"); menu.add(addMenu); menu.add(deleteMenu); JMenuItem highestHarvestItem = new JMenuItem("Макс урожай"); highestHarvestItem.addActionListener(new MenuActionFindHighestHarvest(tableModel)); menu.add(highestHarvestItem); JMenuItem plumHarvestAvgItem = new JMenuItem("Средн Урожай"); plumHarvestAvgItem.addActionListener(new MenuActionGetPlumHarvestAvg(tableModel)); menu.add(plumHarvestAvgItem); JMenuItem harvestPerTypeItem = new JMenuItem("Общий урожай"); harvestPerTypeItem.addActionListener(new MenuActionGetHarvestPerType(tableModel)); menu.add(harvestPerTypeItem); JMenuItem linSpecItem = new JMenuItem("Lin Spec"); linSpecItem.addActionListener(new MenuActionLinSpec()); menu.add(linSpecItem); JMenuItem sectorItem = new JMenuItem("Сектор K деревьев"); sectorItem.addActionListener(new MenuActionFindSmallestSector(tableModel)); menu.add(sectorItem); this.add(menu); } private JMenuItem createMockMenuItem(String text) { JMenuItem item = new JMenuItem(text); item.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog(null, text); } }); return item; } }