import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class JMenubar extends JFrame{
/**
*
*/
private static final long serialVersionUID = 1L;
/**
* Creates a new instance of <code>JMenuBar</code>.
*/
private JMenuBar Jm;
private JMenu col,about;
private JMenuItem gre,red,yel,blue,clo;
public static JTextArea jta;
static JTextField jtf1,jtf2,jtf3;
static JButton j1,j2,j3;
private JLabel b1=new JLabel("输入逻辑地址");
private JLabel b2=new JLabel("输入页内地址");
private JLabel b3=new JLabel("输入页号");
public static int t = 0;
public JMenubar() {
super("三种存储管理方式的地址换算过程");
Container c=getContentPane();
c.setLayout(new BorderLayout());
j1=new JButton("确定");
jtf1 = new JTextField();
jtf1.setColumns(10);
jtf2 = new JTextField();
jtf2.setColumns(10);
jtf3 = new JTextField();
jtf3.setColumns(10);
JPanel p1 =new JPanel();
p1.add(b1);
p1.add(jtf1);
p1.add(b2);
p1.add(jtf2);
p1.add(b3);
p1.add(jtf3);
p1.add(j1);
c.add(p1, BorderLayout.NORTH);
jta = new JTextArea();
jta.setEditable(false);
jta.setBackground(new Color(238,248,248));
jta.append("转换过程如下:\n");
c.add(jta, BorderLayout.CENTER);
Jm=new JMenuBar();
gre=new JMenuItem("分页/分段地址转换算法");
red=new JMenuItem("分段地址转换算法");
yel = new JMenuItem("段页式转换算法");
col=new JMenu("选择地址换算算法类型");
about=new JMenu("关于");
blue = new JMenuItem("关于");
clo=new JMenuItem("退出");
gre.addActionListener(new Handler1());
red.addActionListener(new Handler1());
yel.addActionListener(new Handler1());
blue.addActionListener(new Handler1());
clo.addActionListener(new Handler1());
col.add(gre);
col.add(yel);
col.add(blue);
about.add(blue);
about.add(clo);
Jm.add(col);
Jm.add(about);
setJMenuBar(Jm);
setSize(780,450);
Hide();
setVisible(true);
this.setLocation((int)(Toolkit.getDefaultToolkit().getScreenSize().getWidth()-this.getWidth())/2,
(int) (Toolkit.getDefaultToolkit().getScreenSize().getHeight()-this.getHeight())/2);
}
public void Hide() {
b1.setVisible(false);
b2.setVisible(false);
b3.setVisible(false);
jtf1.setVisible(false);
jtf2.setVisible(false);
jtf3.setVisible(false);
j1.setVisible(false);
}
public void Show(int i) {
if(i==0){
b1.setVisible(true);
b2.setVisible(true);
b3.setVisible(false);
jtf1.setVisible(true);
jtf2.setVisible(true);
jtf3.setVisible(false);
j1.setVisible(true);}
else {
b1.setVisible(true);
b2.setVisible(true);
b3.setVisible(true);
jtf1.setVisible(true);
jtf2.setVisible(true);
jtf3.setVisible(true);
j1.setVisible(true);
}
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
JMenubar app=new JMenubar();
app.addWindowListener(new Handler());
j1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if (e.getSource()==j1) {
if(jtf3.getText().equals("")){
if(jtf1.getText().equals("")||jtf2.getText().equals("")){
jta.setText("请输入逻辑地址和页内地址");
}else{
jta.setText("");
jta.setText("页式转换过程如下:\n");
Page.page(Integer.valueOf(jtf1.getText()),Integer.valueOf(jtf2.getText()));
jta.append("段式转换过程如下:\n");
Segment.segment(Integer.valueOf(jtf1.getText()),Integer.valueOf(jtf2.getText()));
}}
else {
jta.setText("");
jta.setText("段页式转换过程如下:\n");
SegPagtMem.SegPagt(Integer.valueOf(jtf1.getText()),Integer.valueOf(jtf2.getText()),Integer.valueOf(jtf3.getText()));
}
}
}
}
);
// TODO code application logic here
}
static class Handler extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
class Handler1 implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
JMenuItem mi=(JMenuItem)e.getSource();
if(mi==gre)
{
Show(0);
}
else if(mi==red)
{
Show(1);
}
else if(mi==yel)
{
Show(1);
}
else if(mi==blue){
JOptionPane.showMessageDialog(null, "内存地址转换过程演示 2013/7");
}
else if(mi==clo)
{
System.exit(0);
}
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
AddrConv.rar (21个子文件)
AddrConv
AddressConvert.jar 10KB
Storage
.project 383B
src
Segtable.java 85B
Segpagt.java 179B
SegPagtMem.java 1KB
Page.java 1KB
Segment.java 962B
JMenubar.java 5KB
Rand.java 249B
.settings
org.eclipse.jdt.core.prefs 629B
.classpath 301B
bin
JMenubar$Handler.class 538B
JMenubar.class 5KB
Segpagt.class 457B
SegPagtMem.class 2KB
Segment.class 1KB
Page.class 2KB
Rand.class 531B
JMenubar$Handler1.class 1KB
Segtable.class 334B
JMenubar$1.class 2KB
共 21 条
- 1
资源评论
FGU123
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功