Java tehtäviä perusteet vastaus2

Mureakuha

Loikkaa: valikkoon, hakuun

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.

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();
  }
 
}

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ä.

Alkuperäinen (c) Petteri Hämäläinen

Henkilökohtaiset työkalut