📄 bitfield.java
字号:
//Bit Fieldimport java.awt.*;import java.awt.event.*;import javax.swing.*;public class BitField extends JTextField{ private static final int howManyFieldsAre=18; private static int fieldWidth=12; //Width of the field image private static int fieldHeight=15; //Height of the field image public static boolean fieldsOnPortViewerArrayValue[] = new boolean[howManyFieldsAre]; public static boolean fieldsOnPortViewerArrayIsActive[] = new boolean[howManyFieldsAre]; private int thisFieldNumber; private UpdateField updateField = new UpdateField(); private static final int fieldUpdateDelay = 100; public BitField(int coordinateXOnParent, int coordinateYOnParent, int thisFieldNumber, String toolTip){ InitField(); setThisFieldNumber(thisFieldNumber); setFieldLocation(coordinateXOnParent,coordinateYOnParent); setToolTipText(toolTip); } private void InitField(){ setPreferredSize(new Dimension(fieldWidth,fieldHeight)); setOpaque(false); addMouseListener(new MouseFunctions()); setDisabledTextColor(Color.BLACK); setFont(new Font("Arial",Font.BOLD,12)); setEditable(false); setFieldValue(); updateField.start(); } private class MouseFunctions extends MouseAdapter{ public void mousePressed(MouseEvent e){ if (e.getButton()==MouseEvent.BUTTON1){ if (fieldsOnPortViewerArrayIsActive[thisFieldNumber]==true) fieldsOnPortViewerArrayValue[thisFieldNumber]=(!fieldsOnPortViewerArrayValue[thisFieldNumber]); } } } public void setThisFieldNumber(int thisFieldNumber){ this.thisFieldNumber=thisFieldNumber; } public void setFieldLocation(int coordinateXOnParent,int coordinateYOnParent){ setBounds(coordinateXOnParent,coordinateYOnParent,fieldWidth,fieldHeight); } public void setFieldValue(){ switch(thisFieldNumber){ case 1:case 11:case 14:case 17: setText(""+((fieldsOnPortViewerArrayValue[thisFieldNumber]==false)?1:0)); break; default: setText(""+((fieldsOnPortViewerArrayValue[thisFieldNumber]==false)?0:1)); break; } } private class UpdateField extends Thread{ boolean fieldTemp; public void run(){ fieldTemp = fieldsOnPortViewerArrayValue[thisFieldNumber]; while(true){ if (fieldTemp != fieldsOnPortViewerArrayValue[thisFieldNumber]){ setFieldValue(); fieldTemp = fieldsOnPortViewerArrayValue[thisFieldNumber]; } if (thisFieldNumber==0){ if (fieldsOnPortViewerArrayValue[0]==false) dataOutActives(); if (fieldsOnPortViewerArrayValue[0]==true) dataInActives(); } try{Thread.sleep(fieldUpdateDelay);}catch(InterruptedException e){} } } } private void dataInActives(){ fieldsOnPortViewerArrayIsActive[0] = true; fieldsOnPortViewerArrayIsActive[1] = true; fieldsOnPortViewerArrayIsActive[2] = false; fieldsOnPortViewerArrayIsActive[3] = false; fieldsOnPortViewerArrayIsActive[4] = false; fieldsOnPortViewerArrayIsActive[5] = false; fieldsOnPortViewerArrayIsActive[6] = false; fieldsOnPortViewerArrayIsActive[7] = false; fieldsOnPortViewerArrayIsActive[8] = false; fieldsOnPortViewerArrayIsActive[9] = false; fieldsOnPortViewerArrayIsActive[10] = false; fieldsOnPortViewerArrayIsActive[11] = false; fieldsOnPortViewerArrayIsActive[12] = false; fieldsOnPortViewerArrayIsActive[13] = false; fieldsOnPortViewerArrayIsActive[14] = true; fieldsOnPortViewerArrayIsActive[15] = false; fieldsOnPortViewerArrayIsActive[16] = true; fieldsOnPortViewerArrayIsActive[17] = true; } private void dataOutActives(){ fieldsOnPortViewerArrayIsActive[0] = true; fieldsOnPortViewerArrayIsActive[1] = true; fieldsOnPortViewerArrayIsActive[2] = true; fieldsOnPortViewerArrayIsActive[3] = true; fieldsOnPortViewerArrayIsActive[4] = true; fieldsOnPortViewerArrayIsActive[5] = true; fieldsOnPortViewerArrayIsActive[6] = true; fieldsOnPortViewerArrayIsActive[7] = true; fieldsOnPortViewerArrayIsActive[8] = true; fieldsOnPortViewerArrayIsActive[9] = true; fieldsOnPortViewerArrayIsActive[10] = false; fieldsOnPortViewerArrayIsActive[11] = false; fieldsOnPortViewerArrayIsActive[12] = false; fieldsOnPortViewerArrayIsActive[13] = false; fieldsOnPortViewerArrayIsActive[14] = true; fieldsOnPortViewerArrayIsActive[15] = false; fieldsOnPortViewerArrayIsActive[16] = true; fieldsOnPortViewerArrayIsActive[17] = true; } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -