package sisaluokallinen; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Asteet { public static void main(String[] args) { NappiKehys kehys = new NappiKehys(); kehys.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); kehys.setVisible(true); } } /** Nappipaneelin sisältävä kehys */ class NappiKehys extends JFrame { public NappiKehys() { setTitle("Muunnoskone"); setSize(OLETUS_LEVEYS, OLETUS_KORKEUS); // lisätään paneeli kehykseen getContentPane().setLayout(new GridLayout(2,1)); Container contentPane = getContentPane(); setLocationRelativeTo(null); FC fc = new FC(); contentPane.add(fc); CF cf = new CF(); contentPane.add(cf); } public static final int OLETUS_LEVEYS = 300; public static final int OLETUS_KORKEUS = 200; } //Fahren -> Celc class FC extends JPanel { public FC() { teeNappi("F -> C", "Asteet (kokonaisluku, Fahrenheit)"); } void teeNappi(String napinNimi, String labelTeksti) { JLabel jl = new JLabel(labelTeksti); add(jl); JTextField tf1 = new JTextField("",10); add(tf1); JButton uusiNappi = new JButton(napinNimi); add(uusiNappi); uusiNappi.addActionListener(new // LUODAAN NIMETÖN LUOKKA ActionListener() { public void actionPerformed(ActionEvent tap) { } }); } } //Celc ---> Fahren class CF extends JPanel { public CF() { teeNappi("C -> F", "Asteet (kokonaisluku, Celcius)"); } /** Painonapin konstruoiva ja napin paneeliin lisäävä metodi. */ void teeNappi(String napinNimi, String labelTeksti) { JLabel jl = new JLabel(labelTeksti); add(jl); final JTextField tf2 = new JTextField("",10); add(tf2); JButton uusiNappi = new JButton(napinNimi); add(uusiNappi); uusiNappi.addActionListener(new // LUODAAN NIMETÖN LUOKKA ActionListener() { public void actionPerformed(ActionEvent tap) { } }); } }