السلام عليكم
اتمنى الي عنده فكره عن الخطا يساعدني على تصحيح الكود التالي
المشكله في ميثود p.draw
والكود كما يلي :
package chapter2;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
public class Hw1 extends JFrame implements ActionListener
{
// declare variables
static JPanel p ;
static JMenuBar menuBar;
static JMenu fileMenu;
JMenuItem menuItem1 , menuItem2 , menuItem3 , menuItem4 ;
JButton draw;
JLabel l1,l2,l3,l4,l5,l6,l7,l8;
JTextField text ,text1 , text2 , text3 ,text4 ,text5 , text6 , text7 ;
String n1,n2,n3,n4,n5,n6,n7,n8 ;
double num1,num2,num3,num4,num5,num6,num7,num8;
BorderLayout borderLayout;
public Hw1(String title)
{
//Set title - passed in the constructor
setTitle(title);
//enable to close
setDefaultCloseOperation(EXIT_ON_CLOSE);
// set up menu bar
menuBar = new JMenuBar();
menuBar.setLayout(new BoxLayout(menuBar, BoxLayout.X_AXIS));
fileMenu = new JMenu("choose shap");
menuBar.add(fileMenu);
menuItem1 = new JMenuItem("Line");
menuItem1.setActionCommand("Line");
menuItem1.addActionListener(this);
fileMenu.add(menuItem1);
menuItem2 = new JMenuItem("Quadratic curve");
menuItem2.setActionCommand("Quadratic");
menuItem2.addActionListener(this);
fileMenu.add(menuItem2);
menuItem3 = new JMenuItem("Cubic curve");
menuItem3.setActionCommand("Cubic");
menuItem3.addActionListener(this);
fileMenu.add(menuItem3);
menuItem4 = new JMenuItem("Exit");
menuItem4.setActionCommand("Exit");
menuItem4.addActionListener(this);
fileMenu.add(menuItem4);
setJMenuBar(menuBar);
// set up the input text field
JTextField text =new JTextField(3);
text.setActionCommand("userText");
text.addActionListener(this);
getContentPane().add(text);
JTextField text1 =new JTextField(3);
text1.setActionCommand("userText1");
text1.addActionListener(this);
getContentPane().add(text1);
JTextField text2 =new JTextField(3);
text2.setActionCommand("userText2");
text2.addActionListener(this);
getContentPane().add(text2);
JTextField text3 =new JTextField(3);
text3.setActionCommand("userText3");
text3.addActionListener(this);
getContentPane().add(text3);
JTextField text4 =new JTextField(3);
text4.setActionCommand("userText4");
text4.addActionListener(this);
getContentPane().add(text4);
JTextField text5 =new JTextField(3);
text5.setActionCommand("userText5");
text5.addActionListener(this);
getContentPane().add(text5);
JTextField text6 =new JTextField(3);
text6.setActionCommand("userText6");
text6.addActionListener(this);
getContentPane().add(text6);
JTextField text7 =new JTextField(3);
text7.setActionCommand("userText7");
text7.addActionListener(this);
getContentPane().add(text7);
JLabel l1= new JLabel("Enter x1 :");
JLabel l2= new JLabel("Enter y1 :");
JLabel l3= new JLabel("Enter x2 :");
JLabel l4= new JLabel("Enter y2 :");
JLabel l5= new JLabel("Enter x3 :");
JLabel l6= new JLabel("Enter y3 :");
JLabel l7= new JLabel("Enter x4 :");
JLabel l8= new JLabel("Enter y4 :");
// set up buttons
draw = new JButton("draw");
draw.setActionCommand("draw");
draw.addActionListener(this);
//set up layout - not worry about now
borderLayout = new BorderLayout();
borderLayout.setHgap(5);
borderLayout.setVgap(10);
// set layout of content pane
getContentPane().setLayout(borderLayout);
//add the contents
getContentPane().add( p , BorderLayout.NORTH);
getContentPane().add(draw, BorderLayout.CENTER);
} // end constructor
//------------------------------------------------------------------
//Message handlers .
public void actionPerformed(ActionEvent e)
{
if ((e.getActionCommand()).equals("Exit"))
{
System.exit(0);
}
else if ((e.getActionCommand()).equals("Quadratic"))
{
p.add(l1);
p.add(text);
p.add(l2);
p.add(text1);
p.add(l3);
p.add(text2);
p.add(l4);
p.add(text3);
p.add(l5);
p.add(text4);
p.add(l6);
p.add(text5);
p.add(draw);
if ((e.getActionCommand()).equals("draw"))
{
n1 = text.getText();
num1 = Double.parseDouble(n1);
n2 = text1.getText();
num2 = Double.parseDouble(n2);
n3 = text2.getText();
num3 = Double.parseDouble(n3);
n4 = text3.getText();
num4 = Double.parseDouble(n4);
n5 = text4.getText();
num5 = Double.parseDouble(n5);
n6 = text5.getText();
num6 = Double.parseDouble(n6);
QuadCurve2D quadratic = new QuadCurve2D.Double ( num1,num2,num3,num4,num5,num6 );
p.draw(quadratic);
}
}
else if ((e.getActionCommand()).equals("Cubic"))
{
p.add(l1);
p.add(text);
p.add(l2);
p.add(text1);
p.add(l3);
p.add(text2);
p.add(l4);
p.add(text3);
p.add(l5);
p.add(text4);
p.add(l6);
p.add(text5);
p.add(l7);
p.add(text6);
p.add(l8);
p.add(text7);
p.add(draw);
if ((e.getActionCommand()).equals("draw"))
{
n1 = text.getText();
num1 = Double.parseDouble(n1);
n2 = text1.getText();
num2 = Double.parseDouble(n2);
n3 = text2.getText();
num3 = Double.parseDouble(n3);
n4 = text3.getText();
num4 = Double.parseDouble(n4);
n5 = text4.getText();
num5 = Double.parseDouble(n5);
n6 = text5.getText();
num6 = Double.parseDouble(n6);
n7 = text6.getText();
num7 = Double.parseDouble(n7);
n8 = text7.getText();
num8 = Double.parseDouble(n8);
CubicCurve2D cubic = new CubicCurve2D.Double ( num1,num2,num3,num4,num5,num6,num7,num8 );
p.draw(cubic);
}
}
else if ((e.getActionCommand()).equals("Line"))
{
p.add(l1);
p.add(text);
p.add(l2);
p.add(text1);
p.add(l3);
p.add(text2);
p.add(l4);
p.add(text3);
p.add(draw);
if ((e.getActionCommand()).equals("draw"))
{
n1 = text.getText();
num1 = Double.parseDouble(n1);
n2 = text1.getText();
num2 = Double.parseDouble(n2);
n3 = text2.getText();
num3 = Double.parseDouble(n3);
n4 = text3.getText();
num4 = Double.parseDouble(n4);
Line2D line = new Line2D.Double ( num1 , num2 , num3 ,num4 );
p.drawLine( num1 , num2 , num3 ,num4 );
}
}
} // end actionPerformed
//--------------------------------------------------------------------------------
public static void main(String[] args)
{
Hw1 drawing = new Hw1("HomeWork 1");
drawing.pack();
drawing.setVisible(true);
}
} // end class