Article View: be.comp.programming
Article #5730Moeilijke Java Vraag (Voor mij.) Met spoed !!! :-( (Ik moet het inleveren voor school.)
From: Robert van de Vijver
Date: Thu, 06 Mar 2003 22:07
Date: Thu, 06 Mar 2003 22:07
244 lines
8095 bytes
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-mailShow 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/)