📄 circuitsimulatorpainterobject.java~
字号:
/* * PainterObject.java * * Created on 30 July 2003, 16:50 */package es.pj.circuits.fpgaft;import es.Genotype;import es.control.InteractionModel;import es.pj.circuits.*;import islandev.EvolutionaryInteractiveTask;import islandev.SnapshotPainter;import java.util.Vector;import java.awt.Graphics;import javax.swing.JPanel;/** * * @author mmg20 */public class CircuitSimulatorPainterObject implements SnapshotPainter { // Constants protected final int MAIN_POP = 0; // Config/Working protected CircuitPainter cp; protected CircuitMapping mapping; protected EvolutionaryInteractiveTask monica; protected SimulatorLogicElement[][] inoutels; protected int inputSampleSeparation = 50; protected JPanel currParent; /** Creates a new instance of PainterObject */ public CircuitSimulatorPainterObject(CircuitPainter cp, CircuitMapping mapping) { this.cp = cp; this.mapping = mapping; } public void setEvoTask( EvolutionaryInteractiveTask moni ) { monica = moni; } public javax.swing.JComponent getPainter() { JPanel rv = new JPanel(); //rv.setBackground(java.awt.Color.white); initComponents( rv ); return rv; } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the FormEditor. */ private void initComponents( JPanel parent ) { parent.setLayout(new java.awt.BorderLayout()); currParent = parent; jPanel1 = new javax.swing.JPanel(){ public void paint( Graphics jpg ) { Vector report = ( Vector ) monica.get( "GUI" ); Vector fittestV = ( Vector ) report.get( EvolutionaryInteractiveTask.REPORT_BEST_IND ); Genotype fittest = ( Genotype ) fittestV.get( MAIN_POP ); inoutels = mapping.map( fittest ); cp.paint( inoutels, jpg ); } }; jPanel3 = new javax.swing.JPanel(); jLabel1 = new javax.swing.JLabel(); jPanel4 = new javax.swing.JPanel(); jLabel3 = new javax.swing.JLabel(); jPanel2 = new javax.swing.JPanel(); jLabel2 = new javax.swing.JLabel(); textInputs = new javax.swing.JTextField(); jButton1 = new javax.swing.JButton(); jLabel4 = new javax.swing.JLabel(); textFaultPos = new javax.swing.JTextField(); jLabel5 = new javax.swing.JLabel(); textFaultVal = new javax.swing.JTextField(); buttSetFault = new javax.swing.JButton(); jPanel1.setBackground(java.awt.Color.white); jPanel1.setPreferredSize(new java.awt.Dimension(500, 500)); parent.add(jPanel1, java.awt.BorderLayout.CENTER); jPanel3.setLayout(new java.awt.BorderLayout()); jLabel1.setText("Outs"); jPanel3.add(jLabel1, java.awt.BorderLayout.CENTER); parent.add(jPanel3, java.awt.BorderLayout.WEST); jLabel3.setText("Inputs (also below)"); jPanel4.add(jLabel3); parent.add(jPanel4, java.awt.BorderLayout.NORTH); jLabel2.setText("Inputs:"); jPanel2.add(jLabel2); textInputs.setText("000000000"); textInputs.setName("textInputs"); jPanel2.add(textInputs); jButton1.setText("Set Inputs & Run 50 time steps"); jButton1.setName("buttSetInputs"); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton1ActionPerformed(evt,currParent); } }); jPanel2.add(jButton1); jLabel4.setText("Fault Pos.:"); jPanel2.add(jLabel4); textFaultPos.setText("999"); jPanel2.add(textFaultPos); jLabel5.setText("SSA:"); jPanel2.add(jLabel5); textFaultVal.setText("0"); textFaultVal.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { textFaultValActionPerformed(evt); } }); jPanel2.add(textFaultVal); buttSetFault.setText("Set Fault"); buttSetFault.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttSetFaultActionPerformed(evt); } }); jPanel2.add(buttSetFault); parent.add(jPanel2, java.awt.BorderLayout.SOUTH); } private void textFaultValActionPerformed (java.awt.event.ActionEvent evt) {// Add your handling code here: } private void buttSetFaultActionPerformed (java.awt.event.ActionEvent evt) { SimulatorLogicElement[] ins = inoutels[ 0 ]; SimulatorLogicElement[] outs = inoutels[ 1 ]; SimulatorFaultyDelayLE[] els = ( SimulatorFaultyDelayLE[] )inoutels[ 2 ]; for( int el = 0; el < els.length; el++ ) { els[ el ].setFault( es.pj.circuits.fpgaft.FTLib.NOFAULT ); } String txtPos = textFaultPos.getText(); if( !txtPos.equals("") ) { int pos = new Integer( txtPos ).intValue(); int val = textFaultVal.getText().charAt( 0 ) == '1' ? 1:0; els[ pos ].setFault( val ); } } private void jButton1ActionPerformed (java.awt.event.ActionEvent evt, JPanel parent) { SimulatorLogicElement[] ins = inoutels[ 0 ]; SimulatorLogicElement[] outs = inoutels[ 1 ]; SimulatorLogicElement[] els = inoutels[ 2 ]; for( int il = 0; il < ins.length; il++ ) { boolean ival = textInputs.getText().charAt( il ) == '1'; ins[ il ].setNow( ival ); } for( int sdl = 0; sdl < inputSampleSeparation; sdl++ ) { // Update state for( int vl = 0; vl < els.length; vl++ ) { els[ vl ].sampleInputs(); } for( int vl = 0; vl < els.length; vl++ ) { els[ vl ].refreshOutput(); } } parent.repaint(); } // Variables declaration - do not modify private javax.swing.JPanel jPanel4; private javax.swing.JPanel jPanel3; private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel1; private javax.swing.JTextField textInputs; private javax.swing.JButton jButton1; private javax.swing.JTextField textFaultVal; private javax.swing.JTextField textFaultPos; private javax.swing.JButton buttSetFault; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel1; // End of variables declaration }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -