⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 visofstructure.java

📁 petrinets小程序
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;


public class visOfStructure extends JPanel{

	private Label labelP, labelT, labelF, labelW, labelMo;
	private JTextArea areaP, areaT, areaF, areaW, areaMo;
	private String stringP = "", stringT = "", stringF = "", stringW = "", stringMo = "";
	private JButton update;
	
//	private pn PN2;
	
//	private Editor f;
	
	public visOfStructure(){
		
//		PN2 = new pn(run.PNet);
		
		this.setLayout(new GridLayout(0,2));
		
		labelP = new Label("Places: ", Label.RIGHT);
		labelT = new Label("Transitions: ", Label.RIGHT);
		labelF = new Label("Arcs: ", Label.RIGHT);
		labelW = new Label("Weights: ", Label.RIGHT);
		labelMo = new Label("Initial Marking: ", Label.RIGHT);
		
		areaP = new JTextArea("Places", 3, 25);
//		areaP.setEditable(false);
		areaP.setEnabled(false);
		areaT = new JTextArea("Transitions", 3, 25);
//		areaT.setEditable(false);
		areaT.setEnabled(false);
		areaF = new JTextArea("Arcs", 3, 25);
//		areaF.setEditable(false);
		areaF.setEnabled(false);
		areaW = new JTextArea("Weights", 1, 25);
//		areaW.setEditable(false);
		areaW.setEnabled(false);
		areaMo = new JTextArea("Initial Marking", 1, 25);
//		areaMo.setEditable(false);
		areaMo.setEnabled(false);
		
		update = new JButton("Update");
		update.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent event) {
				updateSt(run.Ed.PNet);
			}
		}
		);
		
		add(labelP);
		add(new JScrollPane(areaP));
		add(labelT);
		add(new JScrollPane(areaT));
		add(labelF);
		add(new JScrollPane(areaF));
		add(labelW);
		add(new JScrollPane(areaW));
		add(labelMo);
		add(new JScrollPane(areaMo));
		add(new JLabel(""));
		add(update);
/*	
		areaP.setText(this.getStringP(PNet));
		areaT.setText(this.getStringT(PNet));
		areaF.setText(this.getStringF(PNet));
		areaMo.setText(this.getStringMo(PNet));
*///
//
//
//
		this.setVisible(true);
		this.setSize(400, 450);
	}
	
	public void setStringP(pn PN){
		stringP = new String("");
		
		for(int i = 0; i < PN.numberOfPlaces(); i++){
			place p = new place();
			p = PN.getPlace(i);
			stringP +="   " + p.getName() + ","; 
			if(p.getName() == null) stringP +="   " + "P0" + ",";
			if((i+1) > 0 && (i+1)%5 == 0){
				stringP +='\n';
			}
		}
	}
		
//		return stringP;		
	public String getStringP(pn PN){
		return stringP;
	}
	
	public void setStringT(pn PN){
		stringT = new String("");
		
		for(int j = 0; j < PN.numberOfTransitions(); j++){
			transition t = new transition();
			t = PN.getTransition(j);
			stringT +="   " + t.getName() + ",";
			if(t.getName() == "") stringT += "   " + "T0" + ",";
			if((j+1) > 0 && (j+1)%5 == 0) {
				stringT +='\n';
			}
		}
		
//		return stringT;
	}
	public String getStringT(pn PN){
		return stringT;
	}

	public void setStringF(pn PN){
//		place p;
//		transition t;
		stringF = new String("");
		edge e = new edge(0, 0, 0, 0, null);
		for( int i = 0; i < PN.numberOfEdges(); i++){
			e = PN.getEdge(i);
//			p = run.Ed.PNet.getPlace(i);
			if( e.getTFrom() == e.PLACE ){
				stringF +="*t: " + run.Ed.PNet.getPlace(e.getIFrom()).getName() + " to " + run.Ed.PNet.getTransition(e.getITo()).getName() + " with weight " + e.getWeight();
				if(e.isNegated()) stringF += "  o";
				stringF += '\n'; 
					}
			else if(e.getTFrom() == e.TRANSITION){
				stringF +="t*: " + run.Ed.PNet.getTransition(e.getIFrom()).getName() + " to " + run.Ed.PNet.getPlace(e.getITo()).getName() + " with weight " + e.getWeight();
				if(e.isNegated()) stringF += "  o";
				stringF += '\n'; 
			}
		}
//		return stringF;
	}
	public String getStringF(pn PN){
		return stringF;
	}
	
	public void setStringW(pn PN){
		stringW = "";
		for( int i = 0; i < PN.numberOfEdges(); i++ ){
			stringW += "   " + PN.getEdge(i).getWeight() + ",";
			if((i+1) > 0 && (i+1)%5 == 0) {
				stringW +='\n';
			}
		}
	}
	
	public String getStringW(pn PN){
		return stringW;
	}
	
	public String getStringMo(pn PN){
		stringMo = new String("");
		for(int i = 0; i < PN.numberOfPlaces(); i++){
			place p = PN.getPlace(i);
			stringMo +="   " + p.getTokens() + ","; 
			if((i+1) > 0 && (i+1)%5 == 0) {
				stringMo +='\n';
			}
		}
		return stringMo;
	}
	
	public void updateSt(pn PN1){
		
		this.setStringP(PN1);
		this.setStringT(PN1);
		this.setStringF(PN1);
		this.setStringW(PN1);
		areaP.setText(this.getStringP(PN1));
		areaT.setText(this.getStringT(PN1));
		areaF.setText(this.getStringF(PN1));
		areaW.setText(this.getStringW(PN1));
		areaMo.setText(this.getStringMo(PN1));
	}
	
	
	
	
	
	
	
	
	
	
	
	
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -