سلام
هذا الكود
الهدف منه
حساب مسحات الأشكال الهندسية
من مستطيل مربع دائرة
هذا الهدف المراد الوصول اليه فى النهاية
و لكن الهدف البرمجى من هذا الكود التدرب على فكرة الinheritance
و لكن هى لا تظهر فى هذه الشيفرة
و لكن ستظهر عندما أقونم بعمل الكلاسات الأخرى
ولكن المشكلة الاول و الهامشية فى الكود هى انى عندما اضغط على زرار الrectangle
لا تظهر الcard المحتوية على البانل
و هاك الشيفرة
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.TitledBorder;
public class Geometry extends JFrame {
private JPanel mainpanel, buttonpanel;
private JButton circlebutton, rectangelbutton, trianglebutton;
private TitledBorder border=new TitledBorder("Geometry shape");
private RectanglDemo rect=new RectanglDemo();
public Geometry() {
mainpanel = new JPanel();
buttonpanel=new JPanel(new GridLayout(3,1));
getContentPane().add(rect,BorderLayout.PAGE_END);
buttonpanel.setPreferredSize(new Dimension(150,200));
buttonpanel.setBackground(Color.BLUE);
circlebutton = new JButton("Circle");
rectangelbutton = new JButton("Rectangel");
rectangelbutton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
rect.rectangle();
}
});
trianglebutton = new JButton("Triangle");
buttonpanel.setBorder(BorderFactory.createLineBorder(Color.BLACK, 3));
border.setTitleJustification(TitledBorder.LEFT);
buttonpanel.setBorder(BorderFactory.createTitledBorder(border));
circlebutton=new JButton("Circle");
rectangelbutton=new JButton("Rectangle");
trianglebutton=new JButton("Triangle");
buttonpanel.add(circlebutton);
buttonpanel.add(rectangelbutton);
buttonpanel.add(trianglebutton);
mainpanel.add(buttonpanel);
getContentPane().add(mainpanel,BorderLayout.WEST);
}
public static void main(String[] args) {
JFrame fram = new Geometry();
fram.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fram.setLocationRelativeTo(null);
fram.setResizable(false);
fram.setVisible(true);
fram.setSize(new Dimension(600, 300));
}
}import java.awt.CardLayout;
import java.awt.GridLayout;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
class RectanglDemo extends JPanel {
private CardLayout card;
private JLabel length, width;
private JTextField lenghtfield,widthfield;
private JPanel mainpanel1,rectpanel;
public RectanglDemo() {
rectangle();
}
public void rectangle() {
card=new CardLayout();
mainpanel1=new JPanel(card);
rectpanel=new JPanel(new GridLayout(2,1));
length=new JLabel("Enter length");
lenghtfield=new JTextField(10);
width=new JLabel("Enter width");
widthfield=new JTextField(10);
rectpanel.add(length);
rectpanel.add(lenghtfield);
rectpanel.add(width);
rectpanel.add(widthfield);
mainpanel1.add(rectpanel,"rectangle");
card.show(mainpanel1,"retangle");
}
}و شكرا مسبقاً
