import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
public class OddEvenFrame{
public static void main(String args[]){
new OEWindow();
}
}
class OEWindow extends JFrame implements ActionListener{
/**奇偶校验
* author:欧晓燕
*/
private static final long serialVersionUID = 7943932166620893049L;
JButton[] button = new JButton[6*11];
OEWindow(){
for(int i = 0;i < button.length;i++){
int rd=Math.random()>0.5?1:0;
button[i] = new JButton(""+rd);
this.add(button[i]);
if(i == 65)
button[i].setText("清零");
if((i < 54 && i != 10 && i != 21 && i != 32 && i != 43 && i != 54)||i == 65)
button[i].addActionListener(this);
}
//产生校验位
for(int i = 0;i < 5;i++)
getRow(i);
for(int i = 0;i < 10;i++)
getColumn(i);
//网格布局
this.setLayout(new GridLayout(6,11,2,2));
this.setTitle("奇偶校验");
this.setVisible(true);
this.pack();
this.setResizable(false);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO 自动生成的方法存根
int dex;
JButton textSource = (JButton)e.getSource();
if(textSource == button[65])//清零
for(int i = 0;i < button.length - 1;i++)
button[i].setText("0");
else{
for(dex = 0;dex < 65;dex++)
if(textSource == button[dex])
break;
textSource.setText(textSource.getText().equals("1") ? "0" : "1");
//更新校验位
getRow(dex / 11);
getColumn(dex % 11);
}
}
//计算横行的校验位
public void getRow(int r){
int num = 0;
for(int i = 11*r;i < 11*r+10;i++)
if(button[i].getText().equals("1"))
num += 1;
button[11*r+10].setText((num%2 == 1) ? "result:1" : "result:0");
}
//计算竖行的校验位
public void getColumn(int c){
int num = 0;
for(int i = c;i <= c + 44;i += 11)
if(button[i].getText().equals("1"))
num += 1;
button[c+55].setText((num%2 == 1) ? "result:1" : "result:0");
}
}
奇偶校验实验
需积分: 50 190 浏览量
2013-11-04
16:52:47
上传
评论 1
收藏 7KB ZIP 举报
阳光空气and水
- 粉丝: 0
- 资源: 2
最新资源
- apk.tw_LineLite_v8a_v.2.17.1_sign.apk
- Elasticsearch实战:构建高效搜索系统的秘诀.zip
- HTML+CSS+JS网页设计:从入门到精通.zip
- 数据库课程设计:从理论到实践的全面指南.zip
- Python闭包:深入理解与应用场景解析.zip
- Win64OpenSSL-3-3-0.exe
- 课高分程设计-基于C++实现的民航飞行与地图简易管理系统-南京航空航天大学
- 航天器遥测数据故障检测系统python源码+文档说明+数据库(课程设计)
- 北京航空航天大学操作系统课设+ppt+实验报告
- 基于Vue+Echarts实现风力发电机中传感器的数据展示监控可视化系统+源代码+文档说明(高分课程设计)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈