1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
|
public class GraphFrame extends JFrame {
GraphComponent component= new GraphComponent();
private FramesController controller;
protected JMenuBar menuBar = new JMenuBar();
protected JMenu menu;
public GraphFrame(FramesController controller) {
this.controller = controller;
component.setForeground(Color.BLACK);
component.setBackground(Color.WHITE);
component.setOpaque(true);
component.setPreferredSize(new Dimension(1000, 1000));
JScrollPane scrollPane = new JScrollPane(component);
setJMenuBar(menuBar);
menu = new JMenu(GraphEditor.MENU_FILE);
menuBar.add(menu);
createMenuItem(menu, GraphEditor.MENU_ITEM_NEW, new ActionListener() {
public void actionPerformed(ActionEvent ev) {
GraphFrame.this.controller.createFrame();
}
});
createMenuItem(menu, GraphEditor.MENU_ITEM_CLOSE, new ActionListener() {
public void actionPerformed(ActionEvent ev) {
GraphFrame.this.controller.deleteFrame(GraphFrame.this);
}
});
createMenuSeparator(menu);
createMenuItem(menu, GraphEditor.MENU_ITEM_QUIT, new ActionListener() {
public void actionPerformed(ActionEvent ev) {
GraphFrame.this.controller.quit();
}
});
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
GraphFrame.this.controller.deleteFrame(GraphFrame.this);
}
});
JToolBar toolbar = new JToolBar();
toolbar.setLayout(new GridLayout(0, 1));
addShapeButton(toolbar, new Ellipse2D.Double(0, 0, 10, 10), "Small Circle");
addShapeButton(toolbar, new Ellipse2D.Double(0, 0, 20, 20), "<html>Big Circle<br>(Final state)</html>");
addShapeButton(toolbar, new Rectangle2D.Double(0, 0, 10, 10), "<html>Small Square<br>(Intial&final<br>state)</html>");
addShapeButton(toolbar, new Rectangle2D.Double(0, 0, 20, 20), "<html>Big Square<br>(Initial state)</html>");
Container contentPane = getContentPane();
contentPane.add(toolbar, BorderLayout.WEST);
contentPane.add(scrollPane, BorderLayout.CENTER);
//menu = new JMenu(AutomatonEditor.MENU_EDITOR);
//menuBar.add(menu);
}
private void addShapeButton(JToolBar toolbar, final RectangularShape sample, String name) {
JButton button = new JButton(name);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
component.setVertexSample(sample);
}
});
toolbar.add(button);
}
protected void createMenuItem(JMenu menu, String name, ActionListener action) {
JMenuItem menuItem = new JMenuItem(name);
menuItem.addActionListener(action);
menu.add(menuItem);
}
private void createMenuSeparator(JMenu menu) {
JSeparator separator = new JSeparator();
separator.setForeground(Color.lightGray);
menu.add(separator);
}
} |
Partager