import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.ScrollPaneConstants;
import javax.swing.border.LineBorder;
//import java.awt.event.*;
import javax.swing.*;
@SuppressWarnings("serial")
public class My_Frame extends JFrame implements FocusListener{
JTextArea jta=new JTextArea(); //显示纯文本的多行区域
static JTextField jtf[]=new JTextField[2]; //允许编辑单行文本
static JButton jb[]=new JButton[2]; //按键
Thread_Show ts= new Thread_Show(); //线程
//界面设计
public My_Frame(){
super("模拟多进程共享临界资源");
JLabel jl[]=new JLabel[2]; //标签
for(int i=0;i<jtf.length;i++){
jtf[i]=new JTextField(12);
jtf[i].addFocusListener(this); //焦点监听,输入字符
}
//设置按钮名称和位置
jl[0]=new JLabel("第一线程的名称 : ");
jl[1]=new JLabel("第二线程的名称 : ");
jb[0]=new JButton("模拟开始");
jb[1]=new JButton("模拟结束");
Container cont=this.getContentPane();
cont.setLayout(new BorderLayout());
JPanel jp1=new JPanel(); //面板
JPanel jp2=new JPanel();
jp2.setBackground(new Color(255,227,132));
//jp2.setBorder(new LineBorder(new Color(252,230,201),0));
jp1.setLayout(new GridLayout(0,1));
for(int i=0;i<jtf.length;i++){
JPanel temp=new JPanel();
temp.setBackground(new Color(250,255,240));
temp.add(jl[i]);
temp.add(jtf[i]);
jp1.add(temp);
}
for(int i=0;i<jb.length;i++)
jp2.add(jb[i]);
jp1.add(jp2);
jp1.setBorder(new LineBorder(new Color(0,0,0),10));
jp1.setBorder(new LineBorder(new Color(252,230,201),10));
cont.setLayout(new BorderLayout());
cont.add(jp1,BorderLayout.NORTH);
jta.setEnabled(true);
//滚动条
JScrollPane js=new JScrollPane(jta,
ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED );
jta.setBorder(new LineBorder(new Color(245,222,179),1));
js.setBorder( new LineBorder(new Color(252,230,201),10));
cont.add(js,BorderLayout.CENTER);
this.setSize(335,435);//定义界面大小
this.setDefaultCloseOperation(3);
//设置当前界面显示时相对屏幕的位置
this.setLocation(Toolkit.getDefaultToolkit().getScreenSize().width/2-175 ,
Toolkit.getDefaultToolkit().getScreenSize().height/2-200);
this.setResizable(false);
this.setVisible(true);
//jb1添加监听器
jb[1].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0){
if(ts.tu1!=null&&ts.tu1.isAlive())ts.tu1.interrupt();
if(ts.tu2!=null&&ts.tu2.isAlive())ts.tu2.interrupt();
System.exit(0);
}
});
//jb0添加监听器
jb[0].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0){
for(int i=0;i<jtf.length;i++)jtf[i].setEditable(false);
My_Frame.jb[0].setEnabled(false);
jta.setText("");
ts.run(jtf[0].getText().trim(),jtf[1].getText().trim(),jta);
}
});
}
public static void main(String ares[]){
new My_Frame();
}
public void focusGained(FocusEvent arg0) {
//当用户点击文本框时,文本框就把当前内容清空
JTextField jtf=(JTextField)arg0.getSource();
jtf.setText("");
}
public void focusLost(FocusEvent arg0) {
// TODO 自动生成方法存根
}
}
java-os.rar_多进程os
版权申诉
15 浏览量
2022-09-20
21:21:23
上传
评论
收藏 13KB RAR 举报
邓凌佳
- 粉丝: 65
- 资源: 1万+
最新资源
- 基于matlab开发的根据rvm回归模型自己编的matlab程序.rar
- 高效C++学生成绩管理系统:教育技术+C++17编程+数据管理+教务自动化
- 基于matlab开发的Tipping的相关向量机RVM的回归MATLAB程序,有英文注释,可以运行.rar
- 一个点击正反转程序实例,可实现案件电机正反转
- 搜索链接淘特搜索引擎共享版-tot-search-engine.rar
- 第十八届全国大学生智能汽车竞赛 摄像头组/镜头组
- 基于matlab开发的AUV惯性导航系统matlab仿真程序,包括轨迹生成、gps和sins组合、gps和dvl组合.rar
- 基于SSM的“个性化电子相册”的设计与实现.zip
- 如何在撰写科研文献时,使用ai工具辅助去完成科研工作
- 吉林大学计组笔记 自用 基于b站翼云图灵的课.pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈