Java tehtäviä vaikeat vastaus2

Mureakuha

Loikkaa: valikkoon, hakuun

Tehtävä:

Kirjoita ohjelma, jossa on tilarivi (JLabel luokka) ja kehyskontrolli. Tilarivillä on kolme tietoa. Ensimmäinen on ohjeteksti joka ei muutu ohjelman ajon aikana, toinen ja kolmas osa on tiedot ikkunan koosta. Nämä tiedot täytyy päivittää kun ikkunan kokoa muutetaan. Samaten kehyksen koon täytyy seurata lomakkeen kokoa.

Frame.java

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
 
/**
 * Ikkunaluokka.
 */
public class TilariviFrame extends JFrame
{
  private JLabel statusBar = new JLabel();
  private JPanel panel = new JPanel();
 
  /**
   * Konstruktori.
   */
  public TilariviFrame()
  {
    JPanel contentPane = ( JPanel ) getContentPane();
    Border border = new TitledBorder( BorderFactory.createEtchedBorder( Color.white, new Color( 134, 134, 134 ) ), "Tilarivi" );
    contentPane.setLayout( new BorderLayout() );
    setDefaultCloseOperation( WindowConstants.DISPOSE_ON_CLOSE );
    setSize( new Dimension( 400, 300 ) );
    setTitle( "Tilarivi" );
    statusBar.setBorder( BorderFactory.createEtchedBorder() );
    statusBar.setText( " " );
    contentPane.addComponentListener( new java.awt.event.ComponentAdapter()
    {
      public void componentResized( ComponentEvent e )
      {
        contentPane_componentResized( e );
      }
    } );
    panel.setBorder( border );
    panel.setLayout( new BorderLayout() );
    contentPane.add( statusBar, BorderLayout.SOUTH );
    contentPane.add( panel, BorderLayout.CENTER );
  }
 
  /**
   * Ruudun koon muutos
   * @param e tapahtuman tarkempi kuvaus
   */
  private void contentPane_componentResized( ComponentEvent e )
  {
    Dimension frameSize = getSize();
    statusBar.setText( " Ikkunan koon muutos. Korkeus: " + frameSize.height + " Leveys: " + frameSize.width );
  }
 
}

App.java

import javax.swing.UIManager;
import java.awt.*;
 
/**
 * Varsinainen ohjelma.
 */
public class TilariviApp
{
 
  /**
   * Luo ja rakentaa ohjelman.
   */
  public TilariviApp()
  {
    TilariviFrame frame = new TilariviFrame();
    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 TilariviApp();
  }
}
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