🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #5730

Moeilijke Java Vraag (Voor mij.) Met spoed !!! :-( (Ik moet het inleveren voor school.)

#5730
From: Robert van de Vijver
Date: Thu, 06 Mar 2003 22:07
244 lines
8095 bytes
Hallo allemaal,

Ik heb na een hele tijd puzzelen mijn vorige vraag in de groep (Java
vraagje) voor elkaar en een heel eind kunnen uitbereiden.

Het huidig programma kan vierkantjes tekenen. Maar, nu komt het, nu moet het
programma ook andere viguren kunnen tekenen. (aangegeven in de source) Aan
de hand van radiobuttons moet de gebruiker de vorm kunnen kiezen die hij/zij
wil tekenen. Nu is het probleem dat ik de statment niet in de keuz van de
button krijg. :-( Kan iemand mij misschien helpen.

De statement voor  het tekenen van een vierkant staat helemaal onderaan
tussen de /*.....*/. Als ik weet hoe die erin moet, dan hoop ik dat ik zelf
de rest er wel in kan puzzelen.


Alvast HEEL ERG BEDANKT.

Met vriendelijke groet,
Robert van de Vijver.

// Opdracht 12.15 door Robert van de Vijver Nr. 183404

// Java core packages
import java.awt.*;
import java.awt.event.*;

// Java extension packages
import javax.swing.*;

public class Opdracht_12_15 extends JFrame
   implements MouseListener, MouseMotionListener
   {
 private JLabel statusBar, field;
 private JPanel buttonPanel, drawField;
 private JRadioButton ovalButton, arcButton, lineButton, rectangleButton,
rectangleWRCButton, polygonButton;
 private int xPos1, yPos1, xPos2, yPos2;
 private ButtonGroup radioGroup;
 private Container container;

 public Opdracht_12_15()
 {
  super( "Doet ie het nou?" );

  // get content pane and set its layout
  container = getContentPane();

  // set up layouts
  field = new JLabel( "Ja, hij doet het !!!" );
  buttonPanel = new JPanel();
  drawField = new JPanel();
  statusBar = new JLabel();

  // create radio buttons
  ovalButton = JRadioButton( "Oval", true );
  container.add( ovalButton );

  arcButton = JRadioButton( "Arc", false );
  container.add( arcButton );

  lineButton = JRadioButton( "Line", false );
  container.add( lineButton );

  rectangleButton = JRadioButton( "Rectangle", false );
  container.add( rectangleButton );

  rectangleWRCButton = JRadioButton( "Rectangle with\nrounded corners",
false );
  container.add( rectangleWRCButton) ;

  polygonButton = JRadioButton( "Polygon", false );
  container.add( polygonButton );

  // register events for JRadioButton
  RadioButtonHandler handler = new RadioButtonHandler();
  ovalButton.addItemListener( handler );
  arcButton.addItemListener( handler );
  lineButton.addItemListener( handler );
  rectangleButton.addItemListener( handler );
  rectangleWRCButton.addItemListener( handler );
  polygonButton.addItemListener( handler );

  // create logical relationship between JRadioButtons
  radioGroup = new ButtonGroup();
  radioGroup.add( ovalButton );
  radioGroup.add( arcButton );
  radioGroup.add( lineButton );
  radioGroup.add( rectangleButton );
  radioGroup.add( rectangleWRCButton );
  radioGroup.add( polygonButton );

  container.add( field, BorderLayout.NORTH );
  container.add( buttonPanel, BorderLayout.WEST );
  container.add( drawField, BorderLayout.CENTER );
  container.add( statusBar, BorderLayout.SOUTH );

       addMouseListener( this );
       addMouseMotionListener( this );

  JOptionPane.showMessageDialog(
      null," Met deze applicatie kunt u een vierkant tekenen\n vanuit elke
positie in het grijze vlak.");

  setSize(500, 500);
  setVisible( true );
 }

  // MouseListener event handlers

  // handle event when mouse released immediately after press
     public void mouseClicked( MouseEvent event )
     {
        statusBar.setText( "Clicked at [" + event.getX() +
           ", " + event.getY() + "]" );
     }

  // handle event when mouse pressed
     public void mousePressed( MouseEvent event )
     {
        statusBar.setText( "Pressed at [" + event.getX() +
           ", " + event.getY() + "]" );

      xPos1 = event.getX();
   yPos1 = event.getY();
     }

   // handle event when user drags mouse with button pressed
   public void mouseDragged( MouseEvent event )
   {
         statusBar.setText( "Dragged at [" + event.getX() +
          ", " + event.getY() + "]" );

      xPos2 = event.getX();
   yPos2 = event.getY();
   repaint();
      }

  // handle event when mouse released after dragging
     public void mouseReleased( MouseEvent event )
     {
        statusBar.setText( "Released at [" + event.getX() +
           ", " + event.getY() + "]" );

      xPos2 = event.getX();
   yPos2 = event.getY();
   repaint();
     }

  // handle event when mouse enters area
     public void mouseEntered( MouseEvent event )
     {
        statusBar.setText( "Mouse outside window" );
     }


  // handle event when user moves mouse
     public void mouseMoved( MouseEvent event )
     {
        statusBar.setText( "Moved at [" + event.getX() +
           ", " + event.getY() + "]" );
        }

  // handle event when mouse exits area
     public void mouseExited( MouseEvent event )
     {
        statusBar.setText( "Mouse outside window" );
     }

  // execute application
  public static void main( String args[] )
  {

   Opdracht_12_15 application = new Opdracht_12_15();

   application.setDefaultCloseOperation(
    JFrame.EXIT_ON_CLOSE );
  }

  // private inner class to handle radio button envents
  private class RadioButtonHandler implements ItemListener
  {
   // handle radio button events
   public void itemStateChanged( ItemEvent event )
   {
    // user clicked ovalButton
    if ( event.getSource() == ovalButton )
    yPos1 = (1-1);

    // user clicked arcButton
    else if ( event.getSource() == arcButton )
    yPos1 = (1-1);

    // user clicked lineButton
    else if ( event.getSource() == lineButton )
    yPos1 = (1-1);

    // user clicked rectangleButton
    else if ( event.getSource() == rectangleButton )
    yPos1 = (1-1);

    // user clicked rectangleWRCButton
    else if ( event.getSource() == rectangleWRCButton )
    yPos1 = (1-1);

    // user clicked polygonButton
    else if ( event.getSource() == polygonButton )
    yPos1 = (1-1);
   }
 }
/*
  // draw rectangle
  public void paint( Graphics g )
  {
   super.paint( g );

   if ( xPos2 > xPos1 )
   {
    if (yPos2 > yPos1)

    // van links-boven naar rechts-onder.
    g.drawRect(xPos1, yPos1, ( xPos2 - xPos1 ), (yPos2 - yPos1 ) );

    else

    // van links-onder naar rechts-boven
    g.drawRect(xPos1, yPos2, ( xPos2 - xPos1 ), (yPos1 - yPos2 ) );
   }
   else
    if( xPos1 > xPos2 )
    {
     if ( yPos1 > yPos2)

     // van rechts-onder naar links-boven
     g.drawRect(xPos2, yPos2, ( xPos1 - xPos2 ), (yPos1 - yPos2 ) );

     else

     // van rechts-boven naar links-onder
     g.drawRect(xPos2, yPos1, (xPos1 - xPos2 ) , (yPos2 - yPos1 ) );
    }
    }*/
 }
}
Technical Details
Message-ID: <1046988405.563952@cache2>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-03!sn-xit-01!sn-xit-08!supernews.com!64.152.100.70.MISMATCH!sjc70.webusenet.com!news.webusenet.com!news.tele.dk!news.tele.dk!small.news.tele.dk!newsfeed.multikabel.nl!spool1.news.multikabel.nl!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit
X-Google-Thread: fcea4,ea156aebea1467ed,start
X-Google-Attributes: gidfcea4,public
X-Google-ArrivalTime: 2003-03-06 14:08:48 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-03!sn-xit-01!sn-xit-08!supernews.com!64.152.100.70.MISMATCH!sjc70.webusenet.com!news.webusenet.com!news.tele.dk!news.tele.dk!small.news.tele.dk!newsfeed.multikabel.nl!spool1.news.multikabel.nl!not-for-mail
From: "Robert van de Vijver" <Robert101083@hotmail.com>
Newsgroups: be.comp.programming
Subject: Moeilijke Java Vraag (Voor mij.)  Met spoed !!! :-( (Ik moet het inleveren voor school.)
Date: Thu, 6 Mar 2003 23:07:18 +0100
Organization: NV Multikabel
Lines: 246
Message-ID: <1046988405.563952@cache2>
NNTP-Posting-Host: 10.144.63.5
X-Trace: spool1.multikabel.nl 1046988285 21638 10.144.63.5 (6 Mar 2003 22:04:45 GMT)
X-Complaints-To: abuse@multikabel.nl
NNTP-Posting-Date: Thu, 6 Mar 2003 22:04:45 +0000 (UTC)
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2800.1106
X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2800.1106
Cache-Post-Path: cache2!unknown@qn-213-73-143-181.quicknet.nl
X-Cache: nntpcache 3.0.1+tl1 (see http://www.nntpcache.org/)