Java tehtäviä perusteet vastaus2
Mureakuha
Tehtävä:
Kirjoita ohjelma, jossa on kaksi JButton-luokan painonappia. Push me -napin painaminen vaihtaa Beep me -napin tilaa. Se siis painuu pohjaan, jos se on alunperin ylhäällä ja nousee ylös, jos se on alunperin alhaalla. Beep me -napin painaminen aiheuttaa piippauksen tietokoneen sisäisellä piipparilla.
[muokkaa]
NapitFrame.java
import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.border.*; /** * Ikkunaluokka. */ public class NapitFrame extends JFrame { private JToggleButton beepButton = new JToggleButton( "Beep me" ); private JButton pushButton = new JButton( "Push me" ); /** * Konstruktori. */ public NapitFrame() { FlowLayout flowLayout = new FlowLayout(); flowLayout.setHgap( 20 ); flowLayout.setVgap( 20 ); JPanel contentPane = ( JPanel ) getContentPane(); contentPane.setLayout( flowLayout ); setTitle( "Nappi" ); setDefaultCloseOperation( WindowConstants.DISPOSE_ON_CLOSE ); setResizable( false ); setSize( new Dimension( 400, 140 ) ); beepButton.addActionListener( new java.awt.event.ActionListener() { public void actionPerformed( ActionEvent e ) { beepButton_actionPerformed( e ); } } ); pushButton.addActionListener( new java.awt.event.ActionListener() { public void actionPerformed( ActionEvent e ) { pushButton_actionPerformed( e ); } } ); contentPane.setBorder( BorderFactory.createEtchedBorder() ); contentPane.add( beepButton, null ); contentPane.add( pushButton, null ); } /** * Napin tutkinen. * @param e tapahtuman tarkempi kuvaus */ private void beepButton_actionPerformed( ActionEvent e ) { Toolkit.getDefaultToolkit().beep(); } /** * Napin tutkinen. * @param e tapahtuman tarkempi kuvaus */ private void pushButton_actionPerformed( ActionEvent e ) { beepButton.doClick(); } }
[muokkaa]
NapitApp.java
import java.awt.*; import javax.swing.UIManager; /** * Varsinainen ohjelma. */ public class NapitApp { /** * Luo ja rakentaa ohjelman. */ public NapitApp() { NapitFrame frame = new NapitFrame(); frame.validate(); // keskittää ohjelman ruudun keskelle Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Dimension frameSize = frame.getSize(); if ( frameSize.height > screenSize.height ) frameSize.height = screenSize.height; if ( frameSize.width > screenSize.width ) frameSize.width = screenSize.width; frame.setLocation( ( screenSize.width - frameSize.width ) / 2, ( screenSize.height - frameSize.height ) / 2 ); // näyttää ohjelman frame.setVisible( true ); } /** * Main-metodi. * @param args käynnistysparametrit */ public static void main( String[] args ) { try { UIManager.setLookAndFeel( UIManager.getSystemLookAndFeelClassName() ); } catch ( Exception e ) { e.printStackTrace(); } new NapitApp(); } }
Tämän dokumentin kopiointi, levittäminen sekä muokkaaminen on sallittua GNU Free Documentation Licensen version 1.2 tai uudemman Free Software Foundationin julkaiseman version mukaisesti, ilman muuttumattomuuslauseketta tai kansitekstejä. Tätä koskee vastuuvapaus.
Kopio lisenssistä (englanniksi) löytyy täältä.
Kopio lisenssistä (englanniksi) löytyy täältä.
Alkuperäinen (c) Petteri Hämäläinen
