ورود

View Full Version : لطفا یه نفر کمک کنه



hamid411
شنبه 26 اردیبهشت 1388, 12:10 عصر
من یه کد جاوا دارم ولی نمی دونم چجوری اجراش کنم
اگه یه نفر لطف کنه و راهنمایی کنه ممنون میشم

package prodcongui;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class GUI extends JFrame implements ActionListener
{
private JButton start;
private JPanel button_panel, prod_panel, con_panel;
private JLabel prod=new JLabel("Producer is not producing.");
private JLabel con=new JLabel("Consumer is not consuming.");
private Container cp;
private Thread producer=new Thread(new Runner(),"Producer");
private Thread consumer=new Thread(new Runner2(),"Consumer");
private int buffer[]={-1,-1,-1,-1};
private int buffer_count=0, sum=0, read=0, write=0;
public GUI()
{
super("Producer Consumer");
cp=getContentPane();
start=new JButton("Start Threads");
button_panel=new JPanel();
prod_panel=new JPanel();
con_panel=new JPanel();
button_panel.add(start);
cp.add(button_panel,BorderLayout.SOUTH);
prod_panel.add(prod);
con_panel.add(con);
cp.add(prod_panel,BorderLayout.NORTH);
cp.add(con_panel,FlowLayout.CENTER);
prod_panel.setBackground(Color.RED);
con_panel.setBackground(Color.RED);
start.addActionListener(this);
setSize(330,200);
setLocation(330,330);
setResizable(false);
setVisible(true);
}
public static void main(String[] args)
{
GUI app=new GUI();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;
}
public synchronized void set(int value)
{
while(buffer_count==buffer.length)
{
try
{
SwingUtilities.invokeLater(new ChangeProdCon("Producer can't produce "+"\n"+
"Producer must wait.",prod,Color.ORANGE,prod_panel));
wait();
}
catch(InterruptedException e){}
}
SwingUtilities.invokeLater(new ChangeProdCon("Producer produced "+value,prod,Color.GREEN,prod_panel));
buffer[write]=value;
write=(write+1)%buffer.length;
buffer_count++;
notify();
}
public synchronized int get()
{
while(buffer_count==0)
{
try
{
SwingUtilities.invokeLater(new ChangeProdCon("Consumer can't consume "+"\n"+
"Consumer must wait.",con,Color.ORANGE,con_panel));
wait();
}
catch(InterruptedException e){}
}
int readval=buffer[read];
SwingUtilities.invokeLater(new ChangeProdCon("Consumer consumed "+readval,con,Color.GREEN,con_panel));
read=(read+1)%buffer.length;
buffer_count--;
notify();
return readval;
}
private class ChangeProdCon implements Runnable
{
JLabel lbl;
String s1;
Color col;
JPanel pnl;
public ChangeProdCon(String s, JLabel l, Color c, JPanel p)
{
lbl=l;
s1=s;
col=c;
pnl=p;
}
public void run()
{
lbl.setText(s1);
pnl.setBackground(col);
}
}
public void actionPerformed(ActionEvent e)
{
producer.start();
consumer.start();
}
private class Runner implements Runnable
{
public void run()
{
for(int i=10; i<=500; i++)
{
try
{
Thread.sleep((int)(Math.random()*3001));
set(i);
}
catch(InterruptedException e){}
}
SwingUtilities.invokeLater(new ChangeProdCon("Producer has finished producing.",prod,Color.RED,prod_panel));
}
}
private class Runner2 implements Runnable
{
public void run()
{
for(int i=10; i<=500; i++)
{
try
{
Thread.sleep((int)(Math.random()*3001));
sum+=get();
}
catch(InterruptedException e){}
}
SwingUtilities.invokeLater(new ChangeProdCon("Consumer has finished consuming.",con,Color.RED,con_panel));
}
}
}

unhandled_event
شنبه 26 اردیبهشت 1388, 19:12 عصر
سلام
شما براي اجراي اين برنامه احتياج به نصب JDK دارين. بعد از نصب JDK سریعترین راه نصب یک IDE مثل Netbeans یا Eclipse هست. البته بصورت خط فرمان یا command line هم میتونی برنامه رو اجرا کنی اما یک کم کار داره.
وقتی JDK رو نصب کردی مثلا در فولدر c:\program files\java
( درصورتیکه ویندوز روی درایو c نصب شده باشه بطور پیش فرض jdk روی همون درایو نصب میشه مگر اینکه زمان نصب مسیر رو عوض کنی.

بعد نوبت نصب IDE میشه. البته eclipse احتیاجی به نصب نداره و با کپی کردن ساده کار میکنه اما در تنظیماتش باید مسیر JDK رو بهش بگی.
Netbeans یک پکیج نصب شیک و ساده داره.
اگر در ویندوز یک Environment Variable بنام JAVA_HOME بصورت زیر تعریف کرده باشی خودشون JDK رو تشخیص میدن. مثلا فرض کنیم ورژن jdk نصب شده 1.6.0 باشه و نصب پیش فرض بنابراین مقدار JAVA_HOME رو بصورت زیر باید تعریف کنید :


JAVA_HOME=C:\Program Files\Java\jdk1.6.0


مسیر تعریف یکEnvironment Variable هم در ویندوز بصورت زیر هست :
Control Panel -> System-> Advanced->Environment Variables

بقیه کار هم خلاصه میشه به نحوه ایجاد یک پروژه و ایجاد کلاس بنام GUI و اجرای اون در IDE مورد نظر.
فکر کنم از 6.5 Netbeans استفاده کنید بهتره چون ساده و خوشدسته

hamid411
شنبه 26 اردیبهشت 1388, 19:47 عصر
خیلی ممنون دوست عزیز، مشکلم حل شد.
تشکر ویژه