I_NEED_HELP Posted May 13, 2005 Report Share Posted May 13, 2005 Hi im having to code a java applet which is a simplified version of microsoft paint. I hjave managed to code the display and eventhandling needed and am not sure about how to go about actually getting it to then paint the shapes to the drawing area. I was wonmdering if someone could suggest a way to go about doing this i am not all that experienced at java and believe i am heading in the right direction however after reading many materials i am unsure on exactly how the paint function works this is the code i have currently: import java.applet.*; import java.awt.*; import javax.swing.*; import javax.swing.event.ChangeListener; import javax.swing.event.ChangeEvent; import java.awt.event.*; public class paint extends JApplet { private JLabel pointerLocation; private JPanel colorChooser,canvasArea,menuArea; private JSlider redSlider,greenSlider,blueSlider; private JButton lineButton,thickLineButton,circleButton,filledCircleButton,rectangleButton,fille dRectangleButton,eraserButton; private ImageIcon line,lineThick,circle,circleFilled,rect,rectFilled,eraser; private String shape; private int startx, starty, endx, endy, height, width; public Graphics g; public void init() { Container content = getContentPane(); //Create the three panels pointerLocation = new JLabel(); menuArea = new JPanel(new GridLayout(8,1)); canvasArea = new JPanel(); colorChooser = new JPanel(); ButtonHandler handler = new ButtonHandler(); //create buttons for left panel line = new ImageIcon("line.gif"); lineButton = new JButton(line); lineButton.addActionListener(handler); lineThick = new ImageIcon("thickLine.gif"); thickLineButton = new JButton(lineThick); thickLineButton.addActionListener(handler); circle = new ImageIcon("circle.gif"); circleButton = new JButton(circle); circleButton.addActionListener(handler); circleFilled = new ImageIcon("circlefilled.gif"); filledCircleButton = new JButton(circleFilled); filledCircleButton.addActionListener(handler); rect = new ImageIcon("rect.gif"); rectangleButton = new JButton(rect); rectangleButton.addActionListener(handler); rectFilled = new ImageIcon("rectFilled.gif"); filledRectangleButton = new JButton(rectFilled); filledRectangleButton.addActionListener(handler); eraser = new ImageIcon("eraser.gif"); eraserButton = new JButton(eraser); eraserButton.addActionListener(handler); //setup left panel menuArea.setPreferredSize (new Dimension (35,0)); menuArea.add(lineButton); menuArea.add(thickLineButton); menuArea.add(circleButton); menuArea.add(filledCircleButton); menuArea.add(rectangleButton); menuArea.add(filledRectangleButton); menuArea.add(eraserButton); //setup main canvas area MouseListener mouseListener = new MousePressListener(); addMouseListener(mouseListener); canvasArea.setBackground(Color.white); canvasArea.setPreferredSize (new Dimension (700,350)); //create layout content.setLayout (new BorderLayout()); content.add (canvasArea, BorderLayout.CENTER); content.add (menuArea, BorderLayout.WEST); ChangeListener listener = new ColorListener(); redSlider = new JSlider (0,100,100); redSlider.addChangeListener(listener); greenSlider = new JSlider (0,100,100); greenSlider.addChangeListener(listener); blueSlider = new JSlider (0,100,100); blueSlider.addChangeListener(listener); colorChooser.setLayout(new GridLayout(3,2)); colorChooser.add(new JLabel("Red",SwingConstants.RIGHT)); colorChooser.add(redSlider); colorChooser.add(new JLabel("Green",SwingConstants.RIGHT)); colorChooser.add(greenSlider); colorChooser.add(new JLabel("Blue",SwingConstants.RIGHT)); colorChooser.add(blueSlider); getContentPane().add (colorChooser, BorderLayout.SOUTH); getContentPane().add (pointerLocation, BorderLayout.NORTH); } //create event handler for slider bars to change backgorund color. class ColorListener implements ChangeListener { public void stateChanged (ChangeEvent event) { float red = 0.01F * redSlider.getValue(); float green = 0.01F * greenSlider.getValue(); float blue = 0.01F * blueSlider.getValue(); canvasArea.setBackground(new Color(red,green,blue)); canvasArea.repaint(); } } //create event handler for action buttons class ButtonHandler implements ActionListener { public void actionPerformed (ActionEvent event) { String shape = event.getActionCommand(); } } //create mouse handler for canvas class MousePressListener implements MouseListener { public void mousePressed (MouseEvent event) { int startx = event.getX(); int starty = event.getY(); } public void mouseReleased (MouseEvent event) { int endx = event.getX(); int endy = event.getY(); int width = event.getX() - startx; int height = event.getY() - starty; if (shape == "line") { g.drawLine(startx,starty,endx,endy); } if (shape == "lineThick") { } if (shape == "circle") { g.drawOval(startx,starty,width,height); } if (shape == "circleFilled") { g.fillOval(startx,starty,width,height); } if (shape == "rect") { g.drawRect(startx,starty,width,height); } if (shape == "rectFilled") { g.fillRect(startx,starty,width,height); } if (shape == "eraser") { g.drawOval(startx,starty,10,10); } } public void mouseClicked (MouseEvent event) {} public void mouseEntered (MouseEvent event) {} public void mouseExited (MouseEvent event) {} } } I know there must be someone on this forum whos good at java. Than ks for any help. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.