import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.net.MalformedURLException; import java.net.URL; public class Paint { static JFrame frame = new JFrame("Pa1n7"); static PaintComponent poleDoMalowania = new PaintComponent(); static PaintMouseListener myszka = new PaintMouseListener(); static Figura aktualnaFigura = Figura.KRESKA; static boolean wypelniajFigury = false; static int poczatek_x = -1; static int poczatek_y = -1; public static void main(String[] args) throws MalformedURLException { poleDoMalowania.addMouseListener(myszka); dodajMenuGorne(); dodajIkoneNaPaskuZadan(); JPanel panelSterowania = new JPanel(new GridLayout(3, 1)); panelSterowania.setPreferredSize(new Dimension(100, 400)); panelSterowania.add(new Buttons()); panelSterowania.add(new RadioButtons()); panelSterowania.add(new Checkbox()); Container content = frame.getContentPane(); content.add(poleDoMalowania, BorderLayout.CENTER); content.add(panelSterowania, BorderLayout.WEST); // lewo frame.setSize(400, 400); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } public static void klikniecie(int x, int y) { if(poczatek_x == -1) { // pierwsze klikniecie poczatek_x = x; poczatek_y = y; } else { // drugie klikniecie, rysowanie poleDoMalowania.rysujFigure(aktualnaFigura, poczatek_x, poczatek_y, x, y, wypelniajFigury); resetujPozycjeFigury(); } } public static void resetujPozycjeFigury() { poczatek_x = -1; poczatek_y = -1; } public static void dodajMenuGorne() { MenuItem m1 = new MenuItem("NEW"); m1.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { poleDoMalowania.clear(); }}); MenuItem m2 = new MenuItem("OPEN"); // nie ma mozliwosci otwierania MenuItem m3 = new MenuItem("SAVE"); // nie ma zapisu MenuItem m4 = new MenuItem("EXIT"); m4.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { int result = JOptionPane.showConfirmDialog(frame, "Are you sure that you want close Pa1n7?", "Confirm exit", JOptionPane.INFORMATION_MESSAGE); if(result == JOptionPane.OK_OPTION) { System.exit(0); } }}); MenuBar mbar = new MenuBar(); Menu menu = new Menu("Menu"); menu.add(m1); menu.add(m2); menu.add(m3); menu.add(m4); mbar.add(menu); frame.setMenuBar(mbar); } public static void dodajIkoneNaPaskuZadan() throws MalformedURLException { if(!SystemTray.isSupported()) { System.out.println("SystemTray - nie dziala na tym systemie."); return; } URL imageURL = null; try { imageURL = new URL("http://www.maxsyncup.com/images/help/tray_icon.gif"); } catch(Exception e) { System.out.println("SystemTray - nie udalo sie zaladowac obrazka."); } final PopupMenu popup = new PopupMenu(); final TrayIcon trayIcon = new TrayIcon((new ImageIcon(imageURL, "Pa1n7 icon")).getImage()); final SystemTray tray = SystemTray.getSystemTray(); // Create a popup menu components MenuItem infoItem = new MenuItem("Info"); MenuItem exitItem = new MenuItem("Exit"); //Add components to popup menu popup.add(infoItem); popup.addSeparator(); popup.add(exitItem); trayIcon.setPopupMenu(popup); try { tray.add(trayIcon); } catch (AWTException e) { System.out.println("SystemTray - nie udalo sie dodac do paska zadan."); return; } infoItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog(null,"Pa1n7 wlasnej produkcji!"); } }); exitItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { tray.remove(trayIcon); System.exit(0); } }); } }