import java.applet.*; import java.awt.*; import java.awt.event.*; public class Esim27 extends Applet implements ActionListener { Button nappi; public void init () { add(nappi = new Button("Avaa ikkuna")); nappi.addActionListener(this); } public void actionPerformed(ActionEvent e){ if (e.getActionCommand().equals("Avaa ikkuna")) { new OmaIkkuna("Jukan_ikkuna"); } } } class OmaIkkuna extends Frame implements ActionListener { MenuBar valikkopalkki; Menu valikko1, valikko2; MenuItem tietoja; PopupMenu poppi; public OmaIkkuna(String nimi) { valikkopalkki = new MenuBar(); valikkopalkki.add(valikko1 = new Menu("Kuvioita")); valikkopalkki.add(valikko2 = new Menu("Tietoja")); valikko1.addActionListener(this); valikko2.addActionListener(this); valikko1.add(new MenuItem("Viiva")); valikko1.add(new MenuItem("Ympyrä")); valikko1.add(new MenuItem("Nelikulmio")); valikko1.addSeparator(); valikko1.add(new MenuItem("Täytetty ympyrä")); valikko1.add(new MenuItem("Täytetty nelikulmio")); valikko1.addSeparator(); valikko1.add(new MenuItem("Sulje ikkuna")); valikko2.add(new MenuItem("Tietoja ohjelmasta !!!")); setMenuBar(valikkopalkki); poppi = new PopupMenu("Piirto"); poppi.add(new MenuItem("Viiva")); poppi.add(new MenuItem("Ympyrä")); poppi.add(new MenuItem("Nelikulmio")); poppi.addSeparator(); poppi.add(new MenuItem("Täytetty ympyrä")); poppi.add(new MenuItem("Täytetty nelikulmio")); add(poppi); poppi.addActionListener(this); setTitle("Jukan oma ikkuna :)"); setCursor(new Cursor(HAND_CURSOR)); setBounds(100,100,300,300); show(); enableEvents(AWTEvent.MOUSE_EVENT_MASK); } public void actionPerformed(ActionEvent e){ Graphics x = getGraphics(); x.clearRect(1,1,200,200); if (e.getActionCommand().equals("Viiva")) x.drawLine(50,50,150,150); if (e.getActionCommand().equals("Ympyrä")) x.drawOval(100,100,70,70); if (e.getActionCommand().equals("Nelikulmio")) x.drawRect(50,50,100,100); if (e.getActionCommand().equals("Täytetty ympyrä")) x.fillOval(100,100,70,70); if (e.getActionCommand().equals("Täytetty nelikulmio")) x.fillRect(50,50,100,100); if (e.getActionCommand().equals("Sulje ikkuna")) dispose(); } // Tämä sen takia, että normaali MouseListener-rajapinta ei tue hiiren oikeaa painiketta public void processMouseEvent(MouseEvent e) { if (e.isPopupTrigger()) { poppi.show(e.getComponent(),e.getX(),e.getY()); } super.processMouseEvent(e); } }