• 0
الأورتكواي

برنامج جدول الضرب

سؤال

السلام عليكم ورحمه الله وبركاته

كل الشكر للاداره والمشرفين والاعضاء القائمين على هذا المنتدى النافع واسأل الله ان يضع ذلك في صحائف اعمالهم يوم القيامة

لدي في هذا البرنامج الذي اعددت جزء منه جدول للضرب يقوم المستخدم بالضغط على الرقم الاول من المجموعه الاولى في اليسار

ومن ثم الرقم الثاني من المجموعة الثانية في اليمين ومن ثم النقر على علامة ( X ) لإحتساب الناتج النهائي من عملية الضرب

( جدول الضرب من 1 - 9 )

ما اردت اضافته إلى هذا البرنامج الجميل هو الصور الموجوده ضمن مجلد البرنامج في ملف اسمه REW

اريد ان تظهر الصوره رقم 1 عند النقر على الايقونه رقم 1 في المجموعة الاولى ( يسار ) أو المجموعة الثانية ( يمين )

وتظهر الصورة رقم 2 عند النقر على الايقونة رقم 2 .. وهكذا

لتصبح صورة توضيحيه للمستخدم عن الضغط على الارقام

وهذه الصور تظهر في اعلى او اسفل البرنامج .. لا مشكله

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class prod extends JFrame implements ActionListener{

private JPanel pnl1,pnl2,pnl3,pnl4,pnl5,pnl6;
private JButton number1[];
private JButton number2[];
private JButton calc;
private JTextField output,output1;
private JLabel jlbl1,jlbl2;
private Icon img[];
private Icon img1[];
//private Icon img2[];

private MP3 mp3[];

int n1,n2;

public prod() {

pnl1=new JPanel();
pnl2=new JPanel();
pnl3=new JPanel();
pnl4=new JPanel();
pnl5=new JPanel();
pnl6=new JPanel();
img=new Icon[9];
img1=new Icon[9];
//img2=new Icon[9];
mp3 = new MP3[9];
calc = new JButton("x");
calc.setFont(new Font("serif",Font.BOLD,70));
calc.addActionListener(this);
pnl1.setLayout(new GridLayout(3,3));
pnl2.setLayout(new GridLayout(3,3));
pnl3.setLayout(new GridLayout(1,3));
pnl3.add(pnl1);
pnl3.add(calc);
pnl3.add(pnl2);
number1=new JButton[9];
number2=new JButton[9];



for(int i=0;i<9;i++)
{
img[i]=new ImageIcon("FF\\"+(i+1)+".gif");
img1[i]=new ImageIcon(""+(i+1)+".gif");
//img2[i]=new ImageIcon("REW\\"+(i+1)+".gif");
number1[i]=new JButton(img[i]);


number1[i].setRolloverIcon(img[i]);
number1[i].setFont(new Font("serif",Font.BOLD,30));
number1[i].setRolloverIcon(img1[i]);
number1[i].addActionListener(this);
//number1[i].setRolloverIcon(img2[i]);

pnl1.add(number1[i]);

number2[i]=new JButton(img[i]);
number2[i].setFont(new Font("serif",Font.BOLD,30));
number2[i].setRolloverIcon(img1[i]);
//number2[i].setRolloverIcon(img2[i]);

number2[i].addActionListener(this);
pnl2.add(number2[i]);
mp3[i]=new MP3(Integer.toString(i+1)+".mp3");

}
add(pnl3,BorderLayout.CENTER);
output=new JTextField("Result of product ",15);
output.setEnabled(false);
output1=new JTextField(15);
output1.setEditable(false);
pnl4.add(output);
pnl4.add(output1);
add(pnl4,BorderLayout.SOUTH);
jlbl1=new JLabel("first number is "+n1);
jlbl2=new JLabel("second number is "+n2);
pnl5.setLayout(new GridLayout(1,3));
pnl5.add(jlbl1);
pnl5.add(pnl6);
pnl5.add(jlbl2);
add(pnl5,BorderLayout.NORTH);

output.setFont(new Font("serif",Font.BOLD,30));
output1.setFont(new Font("serif",Font.BOLD,30));
jlbl1.setFont(new Font("serif",Font.BOLD,30));
jlbl2.setFont(new Font("serif",Font.BOLD,30));
}
public void actionPerformed(ActionEvent evnt)
{
JButton ptn=(JButton)evnt.getSource();
for(int i=0;i<9;i++)
if(number1[i]==ptn)
{
n1=i+1;
jlbl1.setText("first number is "+n1);
mp3[n1-1].play();
}
for(int i=0;i<9;i++)
if(number2[i]==ptn)
{
n2=i+1;
jlbl2.setText("second number is "+n2);
mp3[n2-1].play();
}
else if( ptn==calc)
output1.setText(""+(n1*n2));

}
public static void main (String[] args) {
prod app =new prod();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
app.setSize(800,600);
app.setVisible(true);
}

}

PROD.rar

2

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

4 إجابة على هذا السؤال .

  • 0

الأمر بسيط ، بدلا من تقوم بوضع نص setText في الJLable استخدم الدالة setIcon ومرر لها اسم الصورة ،

تعديل بسيط:


import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class prod extends JFrame implements ActionListener{

private JPanel pnl1,pnl2,pnl3,pnl4,pnl5,pnl6;
private JButton number1[];
private JButton number2[];
private JButton calc;
private JTextField output,output1;
private JLabel jlbl1,jlbl2;
private Icon img[];
private Icon img1[];
private Icon lblIcon[];
private MP3 mp3[];

int n1,n2;

public prod() {

pnl1=new JPanel();
pnl2=new JPanel();
pnl3=new JPanel();
pnl4=new JPanel();
pnl5=new JPanel();
pnl6=new JPanel();
img=new Icon[9];
img1=new Icon[9];
mp3 = new MP3[9];
calc = new JButton("x");
calc.setFont(new Font("serif",Font.BOLD,70));
calc.addActionListener(this);
pnl1.setLayout(new GridLayout(3,3));
pnl2.setLayout(new GridLayout(3,3));
pnl3.setLayout(new GridLayout(1,3));
pnl3.add(pnl1);
pnl3.add(calc);
pnl3.add(pnl2);
number1=new JButton[9];
number2=new JButton[9];
lblIcon = new Icon[9] ;

for(int i=0;i<9;i++)
{
img[i]=new ImageIcon("FF\\"+(i+1)+".gif");
img1[i]=new ImageIcon(""+(i+1)+".gif");
lblIcon[i] = new ImageIcon("REW\\" + (i+1) + ".gif") ;
number1[i]=new JButton(img[i]);


number1[i].setRolloverIcon(img[i]);
number1[i].setFont(new Font("serif",Font.BOLD,30));
number1[i].setRolloverIcon(img1[i]);
number1[i].addActionListener(this);
pnl1.add(number1[i]);

number2[i]=new JButton(img[i]);
number2[i].setFont(new Font("serif",Font.BOLD,30));
number2[i].setRolloverIcon(img1[i]);

number2[i].addActionListener(this);
pnl2.add(number2[i]);
mp3[i]=new MP3(Integer.toString(i+1)+".mp3");

}
add(pnl3,BorderLayout.CENTER);
output=new JTextField("Result of product ",15);
output.setEnabled(false);
output1=new JTextField(15);
output1.setEditable(false);
pnl4.add(output);
pnl4.add(output1);
add(pnl4,BorderLayout.SOUTH);
jlbl1=new JLabel("");
jlbl2=new JLabel("");
pnl5.setLayout(new GridLayout(1,3));
pnl5.add(jlbl1);
pnl5.add(pnl6);
pnl5.add(jlbl2);
add(pnl5,BorderLayout.NORTH);

output.setFont(new Font("serif",Font.BOLD,30));
output1.setFont(new Font("serif",Font.BOLD,30));
jlbl1.setFont(new Font("serif",Font.BOLD,30));
jlbl2.setFont(new Font("serif",Font.BOLD,30));
}
public void actionPerformed(ActionEvent evnt)
{
JButton ptn=(JButton)evnt.getSource();
for(int i=0;i<9;i++)
if(number1[i]==ptn)
{
n1=i+1;
jlbl1.setIcon(lblIcon[n1-1]);
mp3[n1-1].play();
}
for(int i=0;i<9;i++)
if(number2[i]==ptn)
{
n2=i+1;
jlbl2.setIcon(lblIcon[n2-1]);
mp3[n2-1].play();
}
else if( ptn==calc)
output1.setText(""+(n1*n2));

}
public static void main (String[] args) {
prod app =new prod();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
app.setSize(800,600);
app.setVisible(true);
}

}


بالتوفيق،

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

صحيح اخوي لكن انت اخفيت label الاثنين الي فوق

وانا عايزهم ..

بمعنى ان الصور عايزها تطلع فوق label الاثنين الي فوق

وشكرا لك

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

حسنا ، دالة البناء في JLable ممكن أن تستقبل الأثنين معا:

// Fetch icon
Icon icon = new ImageIcon("icon.gif");

// Create a label with text and an icon; the icon appears to the left of the text
JLabel label = new JLabel("Text Label", icon, JLabel.CENTER);

يمكنك بعدها وقت الحدث تغيير الصورة أو الكلام باستخدام الدوال setText و setIcon .

ويمكنك التحكم في مكان الكلام باستخدام الدوال:

 label.setHorizontalAlignment(JLabel.LEFT);
label.setVerticalAlignment(JLabel.TOP);

أنظر للتوثيق للمزيد:

http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/JLabel.html

بالتوفيق،

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

قمت بتثبيت الموضوع دعماً مني للبرامج التعليمية

وأرجو من الأخ الكريم وضع أية أسئلة تتعلق ببرنامجه في هذا الموضوع

تحياتي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .