i cant figure out what's wrong with my code. can anyone help me pls?
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class MyGUI implements WindowListener, ActionListener
{
public void windowClosing(WindowEvent e) { System.exit(0); }
public void windowClosed(WindowEvent e) { }
public void windowIconified(WindowEvent e) { }
public void windowOpened(WindowEvent e) { }
public void windowDeiconified(WindowEvent e) { }
public void windowActivated(WindowEvent e) { }
public void windowDeactivated(WindowEvent e) { }
private MyCanvas fCanvas;
private TextField x;
private TextField y;
private TextField w;
private TextField h;
private TextField x1;
private TextField y1;
private TextField x2;
private TextField y2;
//Create frame and add components
public MyGUI()
{
//Add your code here to create a frame, add Labels, TextFields and Buttons, you need choose suitable Layout
JPanel JP1 = new JPanel();
BorderLayout BL = new BorderLayout();
fCanvas = new MyCanvas();
JP1.setLayout(BL);
JP1.add(fCanvas);
JPanel JP3 = new JPanel();
FlowLayout BL9 = new FlowLayout();
JP3.setLayout(BL9);
JLabel ex = new JLabel(" X ");
JTextField x = new JTextField(5);
JP3.add(ex);
JP3.add(x);
JPanel JP4 = new JPanel();
FlowLayout BL1 = new FlowLayout();
JP4.setLayout( BL1 );
JLabel wai = new JLabel("Y ");
JTextField y = new JTextField(5);
JP4.add(wai);
JP4.add(y);
JPanel JP5 = new JPanel();
BorderLayout BL2 = new BorderLayout();
JP5.setLayout( BL2 );
JP5.add(JP3, BorderLayout.WEST);
JP5.add(JP4, BorderLayout.EAST);
JPanel JP6 = new JPanel();
FlowLayout BL3 = new FlowLayout();
JP6.setLayout( BL3 );
JLabel w = new JLabel("Width ");
JTextField width = new JTextField(5);
JP6.add(w);
JP6.add(width);
JPanel JP7 = new JPanel();
FlowLayout BL4 = new FlowLayout();
JP7.setLayout( BL4 );
JLabel h = new JLabel("Height ");
JTextField height = new JTextField(5);
JP7.add(h);
JP7.add(height);
JPanel JP8 = new JPanel();
BorderLayout BL5 = new BorderLayout();
JP8.setLayout( BL5 );
JP8.add(JP6, BorderLayout.WEST);
JP8.add(JP7, BorderLayout.EAST);
JPanel JP9 = new JPanel();
FlowLayout BL6 = new FlowLayout();
JP9.setLayout( BL6 );
JButton rect = new JButton("Rectangular");
rect.addActionListener(this);
rect.setActionCommand("rect");
JButton oval = new JButton("Oval");
oval.setActionCommand("oval");
oval.addActionListener(this);
JP9.add(rect);
JP9.add(oval);
JPanel JP12 = new JPanel();
FlowLayout BL10 = new FlowLayout();
JP12.setLayout( BL10 );
JLabel ex1 = new JLabel(" X1 ");
JTextField x1 = new JTextField(5);
JP12.add(ex1);
JP12.add(x1);
JPanel JP13 = new JPanel();
FlowLayout BL11 = new FlowLayout();
JP13.setLayout( BL11 );
JLabel wai1 = new JLabel(" Y1 ");
JTextField y1 = new JTextField(5);
JP13.add(wai1);
JP13.add(y1);
JPanel JP14 = new JPanel();
BorderLayout BL12 = new BorderLayout();
JP14.setLayout( BL12 );
JP14.add(JP12, BorderLayout.WEST);
JP14.add(JP13, BorderLayout.EAST);
JPanel JP15 = new JPanel();
FlowLayout BL13 = new FlowLayout();
JP15.setLayout( BL13 );
JLabel ex2 = new JLabel(" X2 ");
JTextField x2 = new JTextField(5);
JP15.add(ex2);
JP15.add(x2);
JPanel JP16 = new JPanel();
FlowLayout BL14 = new FlowLayout();
JP16.setLayout( BL14 );
JLabel wai2 = new JLabel(" Y2 ");
JTextField y2 = new JTextField(5);
JP16.add(wai2);
JP16.add(y2);
JPanel JP17 = new JPanel();
BorderLayout BL15 = new BorderLayout();
JP17.setLayout( BL15 );
JP17.add(JP15, BorderLayout.WEST);
JP17.add(JP16, BorderLayout.EAST);
JPanel JP18 = new JPanel();
FlowLayout BL16 = new FlowLayout();
JP18.setLayout( BL16 );
JButton line = new JButton("Line");
line.addActionListener(this);
line.setActionCommand("line");
JP18.add(line);
JPanel JP11 = new JPanel();
GridLayout GL = new GridLayout(6,1);//row,column
JP11.setLayout( GL );
JP11.add(JP5);
JP11.add(JP8);
JP11.add(JP9);
JP11.add(JP14);
JP11.add(JP17);
JP11.add(JP18);
JFrame frame = new JFrame("The Shaper");
BorderLayout BL8 = new BorderLayout();
frame.setLayout(BL8);
frame.add(JP1, BorderLayout.WEST);
frame.add(JP11, BorderLayout.EAST);
frame.setSize(680,450);
frame.setResizable(false);
frame.setLocation(310, 180);
frame.add(JP1);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
//Listen to the buttons' event and perform an action
public void actionPerformed(ActionEvent evt)
{
//Add your code here to check which button has been clicked and draw the shape according to the button's event
if(evt.getActionCommand().equals("rect"))
{
String x1 = x.getText();
int a = Integer.parseInt(x1);
String y1 = y.getText();
int b = Integer.parseInt(y1);
String width = w.getText();
int c = Integer.parseInt(width);
String height = h.getText();
int d = Integer.parseInt(height);
int temp = 1;
fCanvas.Draw(a,b,c,d,temp);
fCanvas.repaint();
}
else if(evt.getActionCommand().equals("oval"))
{
String x2 = x.getText();
int a = Integer.parseInt(x2);
String y2 = y.getText();
int b = Integer.parseInt(y2);
String width2 = w.getText();
int c = Integer.parseInt(width2);
String height2 = h.getText();
int d = Integer.parseInt(height2);
int temp = 2;
fCanvas.Draw(a,b,c,d,temp);
fCanvas.repaint();
}
else if(evt.getActionCommand().equals("line"))
{
String X1 = x1.getText();
int a = Integer.parseInt(X1);
String Y1 = y1.getText();
int b = Integer.parseInt(Y1);
String X2 = x2.getText();
int c = Integer.parseInt(X2);
String Y2 = y2.getText();
int d = Integer.parseInt(Y2);
int temp = 3;
fCanvas.Draw(a,b,c,d,temp);
fCanvas.repaint();
}
}
public static void main(String[] args)
{
MyGUI theGUI = new MyGUI();
}
}
class MyCanvas extends Canvas
{
//Add data members here
public int x1,y1,x2,y2,choice;
public MyCanvas()
{
setSize(400, 400);
setBackground(Color.CYAN);
}
public void Draw(int a,int b,int c,int d,int temp)
{
x1=a;
y1=b;
x2=c;
y2=d;
choice=temp;
}
public void paint(Graphics g)
{
//Add your code here to draw a shape
if(choice==1)
{
g.drawRect(x1,y1,x2,y2);
}
else if(choice==2)
{
g.drawOval(x1,y1,x2,y2);
}
else if(choice==3)
{
g.drawLine(x1,y1,x2,y2);
}
}
}
this program should paints the shape chosen in the canvas on the left side of the frame.
thanks ahead!