package UI;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JSlider;
import javax.swing.JTextField;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import Main.Carrier;
import Main.Consumer;
import Main.Procedure;
import Main.manipulate;
public class MainInterface {
// //菜单栏
// JMenuBar bar = new JMenuBar();
// //操作菜单
// JMenu operator = new JMenu("操作");
// JMenuItem start = new JMenuItem("开始");
// JMenuItem pause = new JMenuItem("暂停");
// JMenuItem continue_ = new JMenuItem("继续");
// JMenuItem end = new JMenuItem("结束");
//操作功能主模块
public static JPanel operator = new JPanel(new GridLayout(12, 1));
JButton start = new JButton("开始");
JButton pause = new JButton("暂停");
JButton continue_ = new JButton("继续");
JButton end = new JButton("结束");
// static JPanel bufferCon = new JPanel(new GridLayout(3, 1));
// static JTextField text1 = new JTextField(10);
// static JTextField text2 = new JTextField(10);
// static JTextField text3 = new JTextField(10);
//判断是不是可以开始
public static boolean submitIsClick = false;
//设置参数
public static JPanel[] parameter = new JPanel[20];
public static void IniParmeter()
{
for(int i = 0 ; i < parameter.length;i++)
{
parameter[i] = new JPanel();
}
}
//定义标签
JLabel buff1 = new JLabel("缓冲区1容量");
JLabel buff2 = new JLabel("缓冲区2容量");
JLabel buff3 = new JLabel("缓冲区3容量");
JLabel ProcedureNumSe = new JLabel("生产者数量");
JLabel Carrier1to2NumberSe = new JLabel("搬运者1->2数量");
JLabel Carrier1to3NumberSe = new JLabel("搬运者1->3数量");
JLabel Consumer2NumberSe = new JLabel("消费者2数量");
JLabel consumer3NumberSe = new JLabel("消费者3数量");
final JSlider SpeedSet = new JSlider(0,300,100);
JLabel SpeedSe = new JLabel("速度:"+SpeedSet.getValue());
JButton submit = new JButton("提交");
//赋值
JTextField buff1Set = new JTextField(String.valueOf(manipulate.buffer1Capacity),4);
JTextField buff2Set = new JTextField(String.valueOf(manipulate.buffer2Capacity),4);
JTextField buff3Set = new JTextField(String.valueOf(manipulate.buffer3Capacity),4);
JTextField ProcudereNumberSet = new JTextField(String.valueOf(manipulate.procedureNumber),4);
JTextField Carrier1to2NumberSet = new JTextField(String.valueOf(manipulate.Carrier1to2Number),4);
JTextField Carrier1to3NumberSet = new JTextField(String.valueOf(manipulate.Carrier1to3Number),4);
JTextField Consumer2NumberSet = new JTextField(String.valueOf(manipulate.Consumer2Number),4);
JTextField Consumer3NumberSet = new JTextField(String.valueOf(manipulate.Consumer3Number),4);
//JTextField SpeedSet = new JTextField(String.valueOf(manipulate.speed),8);
//向panel加东西
public static void addParameter()
{
IniParmeter();
MainInterface setP = new MainInterface();
setP.start.setEnabled(false);
parameter[0].add(setP.buff1);
parameter[0].add(setP.buff1Set);
parameter[1].add(setP.buff2);
parameter[1].add(setP.buff2Set);
parameter[2].add(setP.buff3);
parameter[2].add(setP.buff3Set);
parameter[3].add(setP.ProcedureNumSe);
parameter[3].add(setP.ProcudereNumberSet);
parameter[4].add(setP.Carrier1to2NumberSe);
parameter[4].add(setP.Carrier1to2NumberSet);
parameter[5].add(setP.Carrier1to3NumberSe);
parameter[5].add(setP.Carrier1to3NumberSet);
parameter[6].add(setP.Consumer2NumberSe);
parameter[6].add(setP.Consumer2NumberSet);
parameter[7].add(setP.consumer3NumberSe);
parameter[7].add(setP.Consumer3NumberSet);
parameter[8].add(setP.SpeedSe);
parameter[8].add(setP.SpeedSet);
parameter[9].add(setP.submit);
parameter[10].add(setP.start);
parameter[10].add(setP.pause);
parameter[10].add(setP.continue_);
parameter[10].add(setP.end);
// bufferCon.add(text1);bufferCon.add(text2);bufferCon.add(text3);
// parameter[11].add(bufferCon);
//
setP.submit.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
submitIsClick = true;
setP.start.setEnabled(true);
//获取相关参数
manipulate.buffer1Capacity = Integer.parseInt(setP.buff1Set.getText());
manipulate.buffer2Capacity = Integer.parseInt(setP.buff2Set.getText());
manipulate.buffer3Capacity = Integer.parseInt(setP.buff3Set.getText());
manipulate.procedureNumber = Integer.parseInt(setP.ProcudereNumberSet.getText());
manipulate.Carrier1to2Number = Integer.parseInt(setP.Carrier1to2NumberSet.getText());
manipulate.Carrier1to3Number = Integer.parseInt(setP.Carrier1to3NumberSet.getText());
manipulate.Consumer2Number = Integer.parseInt(setP.Consumer2NumberSet.getText());
manipulate.Consumer3Number = Integer.parseInt(setP.Consumer3NumberSet.getText());
// System.out.println(manipulate.Carrier1to3Number+ "-----"+Integer.parseInt(setP.Carrier1to3NumberSet.getText()));
manipulate.speed = (300/setP.SpeedSet.getValue());
}
});
//点下开始按钮
setP.start.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
setP.start.setEnabled(false);
setP.submit.setEnabled(false);
manipulate.startTime = System.currentTimeMillis();
for(int i = 0 ; i < manipulate.procedureNumber;i++)
{
/// manipulate.procedures[i] = new Procedure(1, i);
manipulate.procedures[i].start();
}
for(int i = 0; i < manipulate.Consumer2Number;i++)
{
// manipulate.consumers2[i] = new Consumer(2, i);
manipulate.consumers2[i].start();
}
for(int i = 0 ; i < manipulate.Consumer3Number;i++)
{
// manipulate.consumers3[i]= new Consumer(3,i);
manipulate.consumers3[i].start();
}
for(int i = 0 ; i < manipulate.Carrier1to2Number;i++)
{
// manipulate.carriers1to2[i] = new Carrier(1, 2, i);
manipulate.carriers1to2[i].start();
}
for(int i = 0 ; i < manipulate.Carrier1to3Number;i++)
{
// manipulate.carriers1to3[i] = new Carrier(1, 3, i);
manipulate.carriers1to3[i].start();
}
}
});
//暂停按钮
setP.pause.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
manipulate.pause = true;
}
});
setP.continue_.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
manipulate.pause =false;
}
});
//end按钮
setP.end.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
manipulate.run = false;
manipulate.endTime = System.currentTimeMillis();
setP.start.setEnabled(false);
setP.continue_.setEnabled(false);
setP.pause.setEnabled(false);
setP.end.setEnabled(false);
setP.submit.setEnabled(false);
new Dialog("结果");
}
});
setP.SpeedSet.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
// TODO Auto-generated method stub
manipulate.speed = 300/setP.SpeedSet.getValue();
setP.SpeedSe.setText("速度:"+setP.SpeedSet.getValue());
}
});
for(int i = 0 ; i <= 11 ;i++)
{
operator.add(parameter[i]);
}
}
// public MainInterface()
// {
// addParameter();
// }
//
public static JPanel getPanel()
{
addParameter();
return operator;
}