import java.awt.*; import java.awt.event.*; import javax.swing.*; public class OmaDialogi { // Pääohjelma // kutsuu ohjelmaa, joka luo kehyksen (JFrame) ja lisää sinne komponentit public static void main(String param[]) { try { UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); new OmaKehys(); } catch (Exception e) { e.printStackTrace(); } } } class OmaKehys { private JButton painike = new JButton("Tietoja"); private JButton lopeta = new JButton("Lopeta"); private TietojaDialogi ad; private JFrame kehys; public OmaKehys() { kehys = new JFrame("Dialogitesti"); kehys.getContentPane().setLayout(new FlowLayout()); kehys.getContentPane().add(painike); kehys.getContentPane().add(lopeta); painike.addActionListener(new PainikeKuuntelija()); lopeta.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { System.exit(0); } } ); kehys.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); kehys.addWindowListener( new WindowAdapter() { public void windowClosed(WindowEvent tapaht) { System.exit(0); } } ); kehys.setBounds(150, 150, 250, 200); kehys.setVisible(true); } class PainikeKuuntelija implements ActionListener { public void actionPerformed(ActionEvent e) { if (ad == null) { ad = new TietojaDialogi(kehys); ad.show(); } else ad.show(); } } } class TietojaDialogi extends JDialog { JButton painike = new JButton("OK"); public TietojaDialogi(Frame k) { // luodaan modaali dialogi super(k, "Sovelluksesta", true); Box laatikko = Box.createVerticalBox(); laatikko.add(Box.createHorizontalStrut(50)); laatikko.add(Box.createVerticalStrut(20)); laatikko.add(new JLabel("Tietoja sovelluksesta")); laatikko.add(new JLabel("Juha Peltomäki, 01.2000")); laatikko.add(Box.createVerticalStrut(20)); getContentPane().add(laatikko, "North"); Box laatikko2 = Box.createVerticalBox(); laatikko2.add(Box.createHorizontalStrut(60)); laatikko2.add(painike); getContentPane().add(laatikko2, "South"); painike.addActionListener ( new ActionListener() { public void actionPerformed(ActionEvent t) { setVisible(false); } } ); this.setSize(200, 160); this.setResizable(false); } }