سلام للجميع
انا هنا بعمل كود لأول الجورزم متعلق بجدولة العمليات فى ال cpu
و هو
انا هنا فى الكود لما بضغط على زر ok
عاوز يظهرلى panel
عليها
label (name) نسيب مساحة كده و نضع ال field >>>> label(time) مساحة field
و ده عاوزه يكون باستخدام ال Gridlayout
عشان يظهروا تحت بعض
انا بشتغل فى ال for loop من 0 إلى رقم العمليات الى انا مدخلها فى الأول
هتشوفوا ال for loop فى ال actioperformed
المشكلة انه بيظهر لى label(name) >> field مرة واحدة فقط
النوع اللي بعمل عليه sheduling
First-Come First-Served Scheduling
الكود اهو
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.Toolkit;
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.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class RandomTest extends JFrame implements ActionListener {
private JPanel upperpanel, processnum_panel, okpanel, nameprocesspanel, timeprocesspanel, mainpanel;
private JLabel processnum_label;
private JTextField processnum_field;
private String[] name;
private JLabel nameprocess, timeprocess;
private JTextField nameField, timefield;
private JButton ok;
public RandomTest() {
upperpanel = new JPanel(new GridLayout(1, 0));
processnum_panel = new JPanel(new FlowLayout(FlowLayout.LEFT));
processnum_label = new JLabel("Enter number of process");
processnum_field = new JTextField(10);
okpanel = new JPanel();
ok = new JButton("ok");
ok.addActionListener(this);
okpanel.add(ok);
processnum_panel.add(processnum_label);
processnum_panel.add(processnum_field);
upperpanel.add(processnum_panel);
upperpanel.add(okpanel);
nameprocesspanel = new JPanel();
nameprocess = new JLabel("name");
nameField = new JTextField(10);
timeprocesspanel = new JPanel();
timeprocess = new JLabel("time");
timefield = new JTextField(10);
upperpanel.setBorder(BorderFactory.createLineBorder(Color.BLUE, 5));
getContentPane().add(upperpanel, BorderLayout.NORTH);
}
public static void main(String[] args) {
Dimension dimScreen = Toolkit.getDefaultToolkit().getScreenSize();
int w = 600, h = 300;
int x = (int) (dimScreen.getWidth() - w) / 2;
int y = (int) (dimScreen.getHeight() - h) / 2;
RandomTest frame = new RandomTest();
frame.setTitle("cpu sheduling algorithm");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
frame.setBounds(x, y, w, h);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == ok) {
mainpanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
for (int i = 0; i <= processnum_field.getText().length(); ++i) {
nameprocesspanel.setLayout(new GridLayout(i + 1, 0));
nameprocesspanel.add(nameprocess);
nameprocesspanel.add(nameField);
timeprocesspanel.setLayout(new GridLayout(i + 1, 0));
timeprocesspanel.add(timeprocess);
timeprocesspanel.add(timefield);
mainpanel.add(nameprocesspanel);
getContentPane().add(mainpanel, BorderLayout.CENTER);
}
}
}
}