资源简介
JAVA实现的银行家算法 做了ui有界面,原本来源于网络,但是自己做了修改!适合用于对付老师的大实验!
代码片段和文件信息
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.Jframe;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class AddProcess extends JDialog implements ActionListener {
private static final long serialVersionUID = -4063443304983396100L;
public static boolean InputEffiencent = true;
public static boolean InputError = false;
private JButton okButton;
private JButton cancelButton;
private JTextField processName;
private JTextField[] textMaxNeed;
private JTextField[] textAllocated;
private int[] maxNeed = null;
private int[] allocated = null;
private String name;
private boolean returnResult = InputError; // InputEffiencent InputError.
private final int lineHeight = 35;
private final int width = 65;
public AddProcess(Jframe owner int resourceClassesCount) {
super(owner “添加新进程“ true);
textMaxNeed = new JTextField[resourceClassesCount];
textAllocated = new JTextField[resourceClassesCount];
maxNeed = new int[resourceClassesCount];
allocated = new int[resourceClassesCount];
processName = new JTextField();
JPanel panel = new JPanel(new GridLayout(resourceClassesCount + 3 3));
panel.add(new JLabel(“进程名“));
panel.add(processName);
panel.add(new JLabel()); // 站位作用.
panel.add(new JLabel(“资源名“)); // 站位作用.
panel.add(new JLabel(“Max“));
panel.add(new JLabel(“Allocation“));
for (int i = 0; i < resourceClassesCount; i++) {
String resourceName = “资源R“ + String.valueOf(i) + “:“;
panel.add(new JLabel(resourceName));
textMaxNeed[i] = new JTextField();
panel.add(textMaxNeed[i]);
textAllocated[i] = new JTextField();
panel.add(textAllocated[i]);
}
panel.add(new JLabel()); // 站位作用.
okButton = new JButton(“确定“);
okButton.addActionListener(this);
panel.add(okButton);
cancelButton = new JButton(“取消“);
cancelButton.addActionListener(this);
panel.add(cancelButton);
this.getContentPane().add(panel);
setBounds();
}
public void setBounds() {
this.setBounds(getX() getY() width * 3 + width + 100 lineHeight
* (textMaxNeed.length + 3));
this.setLocationRelativeTo(this.getOwner());
}
private void setProcess() {
if (setName() && setMaxNeed() && setAllocated()) {
for (int i = 0; i < maxNeed.length; i++) {
if (maxNeed[i] < allocated[i]) {
returnResult = InputError;
JOptionPane.showMessageDialog(this “进程已分配资源量大于进程所需资源最大量!“);
return;
}
}
returnResult = InputEffiencent;
}
}
private boolean setName() {
returnResult = InputEffiencent;
name = processName.getText().trim();
if (name.isEmpty()) {
JOptionPane.showMessageDialog(this “进程名不能为空!“);
returnResult = InputError;
return returnResult;
}
processName.setText(““);
return returnResu
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 301 2014-01-07 03:38 Banker Algorithm\.classpath
文件 392 2014-01-07 03:38 Banker Algorithm\.project
文件 598 2014-01-07 03:38 Banker Algorithm\.settings\org.eclipse.jdt.core.prefs
文件 5108 2014-01-07 04:32 Banker Algorithm\bin\AddProcess.class
文件 3922 2014-01-07 04:32 Banker Algorithm\bin\AddResource.class
文件 10685 2014-01-07 04:32 Banker Algorithm\bin\BankerMainUI.class
文件 8806 2014-01-07 04:32 Banker Algorithm\bin\BankersAlgorithm.class
文件 4239 2014-01-07 04:20 Banker Algorithm\bin\RequestResource.class
文件 4514 2014-01-07 04:32 Banker Algorithm\bin\SystemProcess.class
文件 4961 2014-01-07 04:32 Banker Algorithm\src\AddProcess.java
文件 2992 2014-01-07 04:32 Banker Algorithm\src\AddResource.java
文件 11726 2014-01-07 04:32 Banker Algorithm\src\BankerMainUI.java
文件 7761 2014-01-07 04:32 Banker Algorithm\src\BankersAlgorithm.java
文件 3411 2014-01-07 04:20 Banker Algorithm\src\RequestResource.java
文件 3973 2014-01-07 04:32 Banker Algorithm\src\SystemProcess.java
目录 0 2014-01-07 05:26 Banker Algorithm\.settings
目录 0 2014-01-07 05:26 Banker Algorithm\bin
目录 0 2014-01-07 05:26 Banker Algorithm\src
目录 0 2014-01-07 05:26 Banker Algorithm
----------- --------- ---------- ----- ----
73389 19
- 上一篇:Android调用WPS
- 下一篇:个人博客实训报告
相关资源
- java-web实习报告模板
- 编写程序,使用两个线程,一个队列
- 带括号和小数点的java计算器程序
- java 分页组件
- java课程设计java jsoup 爬取1688网站信息
- 阿里巴巴Java开发手册V1.0.2
- 2018年最新java大数据基于storm开发实时
- 基于java的倒排索引
- JAVA实现万年历小程序
- 北大青鸟S2JAVA门禁系统
- java面试题题库全
- Java通过JNA调用TSCLIB.dll控制热敏打印机
- Java Web 三层架构详解
- JAVA拿火柴小游戏
- java 生成word 的第三方控件
-
xm
l-apis.jar包 - 多线程web服务器 附实验报告 java
- 网络五子棋游戏java socket swing 小项目
- java实现js、css、图片合并到html文件
- Java-WebSocket-jar
- 基于JAVA的论坛源码(J2EE 毕业设计)
- pos机java调用程序demo(基于dll调用)
- Python AES和Java AES/ECB/PKCS5Padding互转
- csv文件读下用的jar包
- java解压缩文件文件夹
- java药品管理系统
- stm32cubeMX_v4.27及f4HAL库包及所需要的
- java网页视频播放
- JAVA串口助手
- 华为Java编程规范试题2(含答案)
评论
共有 条评论