📄 mmqueues.java
字号:
buffPanel.add(buffS);
buffL.setText(bufStrS + buffS.getValue() + bufStrE);
buffS.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent evt) {
buffSStateChanged(evt);
}
});
// results
resultsP.setLayout(new GridLayout(2,2));
resultsP.setBorder(addTitle("Simulation Results",dCst.getSmallGUIFont()));
c.gridx = 0;
c.gridy = 1;
simulationP.add(resultsP, c);
//media
mediaJobsL.setText(nStrS + "0" + nStrE);
mediaJobsL.setFont(dCst.getNormalGUIFont());
resultsP.add(mediaJobsL);
//utilizzo
utilizationL.setText(uStrS + "0" + uStrE);
utilizationL.setFont(dCst.getNormalGUIFont());
resultsP.add(utilizationL);
//throughput
thrL.setText(thrStrS + "0" + thrStrE);
thrL.setFont(dCst.getNormalGUIFont());
resultsP.add(thrL);
//response time
responseL.setText(respStrS + "0" + respStrE);
responseL.setFont(dCst.getNormalGUIFont());
resultsP.add(responseL);
updateFields();
outputP.setLayout(new GridLayout(2, 1));
c.weightx = 1;
c.weighty = 0.7;
c.gridy = 2;
simulationP.add(outputP, c);
outputP.add(outputTabP);
txtScroll.setBorder(addTitle("Simulation Output", dCst.getSmallGUIFont()));
txtScroll.setName("Text Output");
outputTabP.add(statiDrawer);
outputTabP.setTitleAt(0, "States");
outputTabP.add(txtScroll);
outputTabP.setTitleAt(1, "Log");
outputTA.setEditable(false);
outputTA.setAutoscrolls(true);
txtScroll.add(outputTA);
txtScroll.setViewportView(outputTA);
//outputTabP.add(logD);
//outputTabP.setTitleAt(2, "Results");
outputP.add(queueDrawer);
JPanel p = new JPanel(new GridLayout(1,2));
p.add(accelerationP);
p.add(jobsP);
c.weightx = 0;
c.weighty = 0;
c.gridy = 3;
simulationP.add(p, c);
c.gridx = 1;
c.gridx = 0;
c.weightx = 0;
c.gridy = 4;
c.fill = GridBagConstraints.HORIZONTAL;
simulationP.add(buttonsP, c);
playB.setText("start");
buttonsP.add(playB);
playB.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
playBActionPerformed(evt);
}
});
stopB.setEnabled(false);
stopB.setText("stop");
buttonsP.add(stopB);
stopB.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
stopBActionPerformed(evt);
}
});
pauseB.setEnabled(false);
pauseB.setText("pause");
buttonsP.add(pauseB);
pauseB.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
pauseBActionPerformed(evt);
}
});
//menu
menuB = new JMenuBar();
setJMenuBar(menuB);
//queue
queueMenu = new JMenu("Queue");
MM1Item = new JRadioButtonMenuItem("M/M/1", true);
MM1Item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
MM1Item.setSelected(true);
MM1dItem.setSelected(false);
showQueue(0);
}
});
queueMenu.add(MM1Item);
MM1dItem = new JRadioButtonMenuItem("M/M/1/k", false);
MM1dItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
MM1dItem.setSelected(true);
MM1Item.setSelected(false);
showQueue(1);
}
});
queueMenu.add(MM1dItem);
queueMenu.addSeparator();
//exitMenuItem = new JMenuItem();
Action exitAction = new AbstractAction("Exit"){
public void actionPerformed(ActionEvent event)
{
//action code goes here
dispose();
Manager.exit(MMQueues.this);
}
};
queueMenu.add(exitAction);
menuB.add(queueMenu);
//settings
settingsMenu = new JMenu("Settings");
colorsMenu = new JMenu("Colors");
Action queueCAction = new AbstractAction("Probability..."){
public void actionPerformed(ActionEvent event)
{
//action code goes here
Color tmpC;
tmpC = JColorChooser.showDialog(null,"Probability color", probC);
if (tmpC != null){
if (DEBUG) {
System.out.println("queueC - R:" + tmpC.getRed() +
" G:" + tmpC.getGreen() +
" B:" + tmpC.getBlue());
}
probC = tmpC;
changeColors();
}
}
};
colorsMenu.add(queueCAction);
Action queueFCAction = new AbstractAction("Queue..."){
public void actionPerformed(ActionEvent event)
{
//action code goes here
Color tmpC;
tmpC = JColorChooser.showDialog(null,"Queue color", queueC);
if (tmpC != null){
if (DEBUG) {
System.out.println("queueFC - R:" + tmpC.getRed() +
" G:" + tmpC.getGreen() +
" B:" + tmpC.getBlue());
}
queueC = tmpC;
changeColors();
}
}
};
colorsMenu.add(queueFCAction);
colorsMenu.addSeparator();
Action statusCAction = new AbstractAction("Empty state..."){
public void actionPerformed(ActionEvent event)
{
//action code goes here
Color tmpC;
tmpC = JColorChooser.showDialog(null,"Empty state color", emptyC);
if (tmpC != null){
if (DEBUG) {
System.out.println("statusC - R:" + tmpC.getRed() +
" G:" + tmpC.getGreen() +
" B:" + tmpC.getBlue());
}
emptyC = tmpC;
changeColors();
}
}
};
colorsMenu.add(statusCAction);
Action animCAction = new AbstractAction("Animation..."){
public void actionPerformed(ActionEvent event)
{
//action code goes here
Color tmpC;
tmpC = JColorChooser.showDialog(null,"Animation color", animC);
if (tmpC != null){
if (DEBUG) {
System.out.println("animC - R:" + tmpC.getRed() +
" G:" + tmpC.getGreen() +
" B:" + tmpC.getBlue());
}
animC = tmpC;
changeColors();
}
}
};
colorsMenu.add(animCAction);
colorsMenu.addSeparator();
//gradientItem = new JRadioButtonMenuItem("usa gradiente", false);
gradientItem = new JRadioButtonMenuItem("Use gradient", false);
gradientItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
gradientF = gradientItem.isSelected();
changeColors();
}
});
colorsMenu.add(gradientItem);
settingsMenu.add(colorsMenu);
//sizeMenu = new JMenu("Dimensioni");
sizeMenu = new JMenu("Icon size");
//Action drawSmallAction = new AbstractAction("Piccole"){
Action drawSmallAction = new AbstractAction("Small"){
public void actionPerformed(ActionEvent event)
{
//action code goes here
dCst = new DrawSmall();
changeSize();
}
};
sizeMenu.add(drawSmallAction);
//Action drawNormalAction = new AbstractAction("Normali"){
Action drawNormalAction = new AbstractAction("Normal"){
public void actionPerformed(ActionEvent event)
{
//action code goes here
dCst = new DrawNormal();
changeSize();
}
};
sizeMenu.add(drawNormalAction);
//Action drawBigAction = new AbstractAction("Grandi"){
Action drawBigAction = new AbstractAction("Large"){
public void actionPerformed(ActionEvent event)
{
//action code goes here
dCst = new DrawBig();
changeSize();
}
};
sizeMenu.add(drawBigAction);
settingsMenu.add(sizeMenu);
menuB.add(settingsMenu);
//help
helpMenu = new JMenu("Help");
//OLD
// helpMenuItem = helpMenu.add("Help");
//NEW
//@author Stefano Omini
Action helpAction = new AbstractAction("Help"){
public void actionPerformed(ActionEvent event)
{
//action code goes here
showHelp(event);
}
};
helpMenuItem = helpMenu.add(helpAction);
//end NEW
//NEW Bertoli Marco
helpMenu.addSeparator();
JMenuItem about = new JMenuItem();
about.setText("About...");
about.addActionListener(new ActionListener() {
/**
* Invoked when an action occurs.
*/
public void actionPerformed(ActionEvent e) {
AboutDialogFactory.showJMCH(MMQueues.this);
}
});
helpMenu.add(about);
//END new
menuB.add(helpMenu);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Changes the size of the drawing text
*/
protected void changeSize() {
queueDrawer.changeDrawSettings(dCst);
queueDrawer.repaint();
statiDrawer.changeDrawSettings(dCst);
statiDrawer.repaint();
outputTA.changeDrawSettings(dCst);
//logD.changeDrawSettings(dCst);
validate();
}
/**
*
*/
protected void changeColors() {
queueDrawer.setColors(emptyC, queueC, animC, gradientF);
queueDrawer.repaint();
statiDrawer.setColors(emptyC, queueC, probC, animC);
statiDrawer.repaint();
}
/**
* @param evt
*/
protected void buffSStateChanged(ChangeEvent evt) {
buffer = buffS.getValue();
if (buffer < 1){
buffS.setValue(1);
buffer = 1;
}
ql.setMaxStates(buffer);
queueDrawer.setMaxJobs(buffer);
statiDrawer.setMaxJobs(buffer);
buffL.setText(bufStrS + buffS.getValue() + bufStrE);
}
protected void showQueue(int queueType) {
switch (queueType) {
case 0:
buffer = 0;
ql = new MM1Logic(
0.01 * lambdaS.getValue(),
0.005 * sS.getValue() * sMultiplier);
buffPanel.setVisible(false);
break;
case 1:
buffer = BUFF_I;
ql = new MM1dLogic(
0.01 * lambdaS.getValue(),
0.005 * sS.getValue() * sMultiplier,
buffer);
buffS.setValue(buffer);
buffPanel.setVisible(true);
break;
default :
break;
}
sS.setValue(S_I);
lambdaS.setValue(LAMBDA_I);
statiDrawer.updateLogic(ql);
queueDrawer.setMaxJobs(buffer);
statiDrawer.setMaxJobs(buffer);
updateFields();
}
public static void main(String[] args) {
int i = 0;
configureUI(plafURIA[i]);
if (DEBUG)
System.out.println(plafName[i]);
showGUI();
}
public static void showGUI() {
try {
MMQueues inst = new MMQueues();
inst.setVisible(true);
Manager.addJMTWindow(inst);
} catch (Exception e) {
e.printStackTrace();
}
}
protected void playBActionPerformed(ActionEvent evt) {
boolean goOn = true;
if (nonErgodic)
if (JOptionPane.NO_OPTION == JOptionPane.showConfirmDialog(
this,
"Il processo
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -