В приведенной ниже программе есть два класса DutBoardBuilder_1 и FCFS1.В классе FCFS1 у меня есть 2 события действия. Мне нужно, чтобы методы в классе DutBoardBuilder_1 выполнялись только после окончания второго события действия.Но у меня нет контроля над основной функцией класса DutBoardBuilder_1.Проблема в том, что после выполнения конструктора класса FCFS1 выполняется метод с именем build в классе FCFS1.Основная функция класса DutBoardBuilder_1 скрыта, я не могу ее редактировать, но я знал, что метод сборки определенно выполняется. В классе FCFS1 есть несколько специфических API в соответствии с проектом, поэтому, пожалуйста, не путайте с ним
Я не могу получить никакого представления об этом, так как основная функция класса DutBoardBuilder_1 не находится под моим контролем. Но я знал, что сборка метода определенно выполняется.
import xoc.ssf.IDutBd;
import xoc.ssf.ISSFContext;
import xoc.ssf.SSFFactory;
import xoc.ssf.dutbd.IFixtureDelayDefn;
import xoc.ssf.dutbd.IRoutingDefn;
import xoc.ssf.dutbd.IRoutingSiteDefn.UtilityLineState;
import xoc.ssf.dutbd.ISignalDefn;
import xoc.st8pg.DutboardBuilder;
import java.awt.Color;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
@SuppressWarnings("deprecation")
public class DutBoardBuilder_1 extends DutboardBuilder implements
ActionListener {
FCFS1 obj=new FCFS1();
public DutBoardBuilder_1(String name)
{
super(name);
System.out.println("the passed argument in the dut board builder is
"+name); // name is common.dutboard
}
@SuppressWarnings("deprecation")
//@Override
public void build1() throws Exception {
String outputDir = "/home/Dialog/workspace_8.1.2/exp/sarav/src";
ISSFContext context = SSFFactory.createSSFContext(outputDir);
IDutBd dutBdRW = SSFFactory.createDutBd(context, "foo");
FCFS1 obj=new FCFS1();
obj.setVisible(true);
obj.setSize(400,400);
System.out.println("End of the external Code");
obj.setDefaultCloseOperation(3);
// ISSFContext context =
SSFFactory.createSSFContext(getManager().getTargetPath());
// IDutBd dutBdRW = SSFFactory.createDutBd(context,
"src.common.dutBoard");
if(obj.ae.getSource()==obj.btn1)
{
ISignalDefn signal;
IRoutingDefn rout;
System.out.println("the real SMT-8 begins_1");
// Set Number Of Sites.
dutBdRW.setNumberOfSites(obj.sitecount);
int set=obj.completeset;
int sfactor=0,susedvalue=1,pfactor=1,pusedvalue=1,rfactor=3,
rusedvalue=1,forutilityset=0,forutilityset_1=0;
int fixturedelay_int=0;
System.out.println("the real SMT-8 begins");
if(obj.lbrelaycount!=0)
{
for(int j=0;j<obj.sitecount;j++)
{
int krc_1=0;
for(int k=0;k<obj.lbrelaycount;k++)
{
System.out.println("loardboardrelay details");
dutBdRW.addUtilityLine(obj.texts.get
(krc_1+obj.lbrelaycount+forutilityset_1))
.setPogo(obj.texts.get(obj.lbrelaycount+krc_1+1+forutilityset_1));
krc_1=krc_1+2;
}
forutilityset_1=forutilityset_1+set;
}
}
if(obj.texts.get(1+obj.lbrelaycount*2+2).length()>0)
{
fixturedelay_int=1;
}
for(int i=0;i<obj.pincount;i++)
{
signal=dutBdRW.addSignal(obj.texts.get(sfactor));
rout=signal.setRouting();
for(int j=0;j<obj.sitecount;j++)
{
signal.addSite(j).setPogo(obj.texts.get(pfactor));
pfactor = 1+pusedvalue*set;
pusedvalue++;
}
for(int j=0;j<obj.sitecount;j++)
{
int krc=0;
for(int k=0;k<obj.lbrelaycount;k++)
{
rout.addSite(j).
addUtilityLineState(obj.texts.get(krc+obj.lbrelaycount+forutilityset),
UtilityLineState.valueOf(obj.texts.get(obj.lbrelaycount+krc+1+
forutilityset)));
krc=krc+2;
}
forutilityset=forutilityset+set;
}
if(fixturedelay_int==1)
{
IFixtureDelayDefn fixtureDelay =
dutBdRW.addFixtureDelayProperty();
for(int m=0;m<obj.sitecount;m++)
{
int ffactor=0;
fixtureDelay.addSignal(obj.texts.get(sfactor))
.addSite(m).
setFixtureDelay(obj .texts.get(3+obj.lbrelaycount*2+ffactor));
ffactor=ffactor+set;
}
}
sfactor=susedvalue*set*obj.sitecount;
susedvalue++;
}
dutBdRW.commitChanges();
}
}
}
class FCFS1 extends JFrame implements ActionListener{
JButton btn1,btn2,b,btnCount;
JTextField tf1,tf2,textField_2,tfdevicedet,tfdevicever,
tftedet,tfsiteinfo,tfpincount,tfrelayinfo;
JPanel p,pa1;
Container c;
JPanel p1 = new JPanel();
JLabel lblheading,lbldeviceinfo,lbldeviceversion,
lblteinfo,lblCount,lbpininfo,lbrelayinfo;
ArrayList<JTextField> arr=new ArrayList<>();
ArrayList<String> texts=new ArrayList<>(100);
int pincount;
int sitecount,lbrelaycount,completeset;
ActionEvent ae;
public FCFS1(){
//super("FCFS");
System.out.println("Constructor beginning");
setLayout(null);
p=new JPanel();
lblheading = new JLabel("Dut Board File Generator");
lblheading.setBounds(120,0,180,70);
add(lblheading);
lbldeviceinfo = new JLabel("<html><br>Enter the Device
Information</html>");
lbldeviceinfo.setBounds(0,40,190,40);
add(lbldeviceinfo);
tfdevicedet = new JTextField(1);
tfdevicedet.setBounds(200,57,150,20);
add(tfdevicedet);
lbldeviceversion = new JLabel("Enter the Device Version");
lbldeviceversion.setBounds(0,70,200,40);
add(lbldeviceversion);
tfdevicever = new JTextField(1);
tfdevicever.setBounds(200,80,150,20);
add(tfdevicever);
lblteinfo = new JLabel("Enter the TE Name");
lblteinfo.setBounds(0,100,150,40);
add(lblteinfo);
tftedet = new JTextField(1);
tftedet.setBounds(200,110,150,20);
add(tftedet);
lblCount = new JLabel("Enter the Number of Sites");
lblCount.setBounds(0,140,190,30);
add(lblCount);
tfsiteinfo =new JTextField(1);
tfsiteinfo.setBounds(200,145,20,20);
add(tfsiteinfo);
lbpininfo = new JLabel("Enter the Number of pins");
lbpininfo.setBounds(0,165,180,30);
add(lbpininfo);
tfpincount =new JTextField(1);
tfpincount.setBounds(200,170,20,20);
add(tfpincount);
lbrelayinfo = new JLabel("<html>Enter the Number of<br> Load
Board Relays</html>");
lbrelayinfo.setBounds(0,195,300,30);
add(lbrelayinfo);
tfrelayinfo =new JTextField(1);
tfrelayinfo.setBounds(200,200,20,20);
add(tfrelayinfo);
c=getContentPane();
btnCount = new JButton("Confirm");
btnCount.setBounds(160,247, 90, 25);
btnCount.addActionListener(this);
add(btnCount);
c.add(p);
System.out.println("Constructor ends");
}
public static void main(String args[]){
}
@Override
public void actionPerformed(ActionEvent ae)
{
if(ae.getSource()==btnCount)
{
System.out.println("1st action event begins");
lbrelaycount=
Integer.parseInt(tfrelayinfo.getText());
sitecount = Integer.parseInt(tfsiteinfo.getText());
System.out.println(sitecount);
completeset=11+(lbrelaycount*2);
pincount=Integer.parseInt(tfpincount.getText());
setLayout(null);
p.setLayout(new GridLayout(0,11+(lbrelaycount*2)));
JTextField textField= new JTextField("Pin Names",1);
textField.setEditable(false);
textField.setBackground(Color.CYAN);
p.add(textField);
JTextField textField_1 =new JTextField("PogoNumber",1);
textField_1.setEditable(false);
textField_1.setBackground(Color.CYAN);
p.add(textField_1);
for(int j=0;j<lbrelaycount;j++)
{
JTextField textField_3 =new JTextField("Board Relay
="+j,7);
textField_3.setEditable(false);
p.add(textField_3);
JTextField textField_13 =new JTextField("Board Relay Pogo
No "+j,13);
textField_13.setEditable(false);
p.add(textField_13);
}
JTextField textField_4 =new JTextField("Settling
Time",1);
textField_4.setEditable(false);
p.add(textField_4);
JTextField textField_5 =new JTextField("Fixture
Delay",1);
textField_5.setEditable(false);
p.add(textField_5);
JTextField textField_6 =new JTextField("Dut Impedance
AC",9);
textField_6.setEditable(false);
p.add(textField_6);
JTextField textField_7 =new JTextField("Dut Impedance
DC",9);
textField_7.setEditable(false);
p.add(textField_7);
JTextField textField_8 =new JTextField("iForceMax
(A)",1);
textField_8.setEditable(false);
p.add(textField_8);
JTextField textField_9 =new JTextField("iForceMin
(A)",1);
textField_9.setEditable(false);
p.add(textField_9);
JTextField textField_10 =new JTextField("vForceMax
(V)",1);
textField_10.setEditable(false);
p.add(textField_10);
JTextField textField_11 =new JTextField("vForceMin
(V)",1);
textField_11.setEditable(false);
p.add(textField_11);
JTextField textField_12 =new JTextField("Capacitance
(F)",1);
textField_12.setEditable(false);
p.add(textField_12);
for (int j=0;j<pincount*(11+
(lbrelaycount*2))*sitecount;j++)
{
textField_2 = new JTextField(4);
p.add( textField_2 );
arr.add(textField_2);
}
JScrollPane taScroll = new JScrollPane(p);
taScroll.setHorizontalScrollBarPolicy
(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
taScroll.setVerticalScrollBarPolicy
(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
taScroll.setBounds(5,300,1700,200);
add(taScroll);
btn1 =new JButton("Generate");
add(btn1);
btn1.setBounds(600,520,110,50);
btn1.addActionListener(this);
revalidate();
repaint();
setSize(1700, 1400);
}
if(ae. getSource()==btn1)
{
System.out.println("Second Action event begins");
for (Object textField : arr) {
texts.add(((JTextField)textField).getText());
}
System.out.println("the size of text array is"+texts.size());
}
}
}