📄 analyseframe.java
字号:
curp=status;
jl1.setText(String.valueOf(status[0]));
jl2.setText(String.valueOf(status[1]));
jl3.setText(String.valueOf(status[2]));
jl4.setText(String.valueOf(status[3]));
jl5.setText(String.valueOf(status[4]));
jl6.setText(String.valueOf(status[5]));
jl7.setText(String.valueOf(status[6]));
jl8.setText(String.valueOf(status[7]));
jl9.setText(String.valueOf(status[8]));
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
for(EightAnalyse i:ea){
i.clear();
}
stStatus.setText("{}");
edStatus.setText("{}");
a1tn.setText("0");
a1tu.setText("0");
a1mu.setText("0");
a2tn.setText("0");
a2tu.setText("0");
a2mu.setText("0");
a3tn.setText("0");
a3tu.setText("0");
a3mu.setText("0");
}//GEN-LAST:event_jButton2ActionPerformed
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
EightAnalyse i=ea.get(0);
i.search();
EightBFS t=(EightBFS)i;
String ss="{ ";
int[] s=t.getStart();
for(int j=0;j<9;j++){
ss+=s[j]+" ";
}
stStatus.setText(ss+" }");
setPane(s);
ss="{ ";
s=t.end;
for(int j=0;j<9;j++){
ss+=s[j]+" ";
}
edStatus.setText(ss+" }");
a1tn.setText(String.valueOf(i.getTraveledNodes()));
a1tu.setText(String.valueOf(i.getTimeUsed()));
a1mu.setText(String.valueOf(i.getMemoryUsed()/1024));
i=ea.get(1);
i.search();
a2tn.setText(String.valueOf(i.getTraveledNodes()));
a2tu.setText(String.valueOf(i.getTimeUsed()));
a2mu.setText(String.valueOf(i.getMemoryUsed()/1024));
i=ea.get(2);
i.search();
a3tn.setText(String.valueOf(i.getTraveledNodes()));
a3tu.setText(String.valueOf(i.getTimeUsed()));
a3mu.setText(String.valueOf(i.getMemoryUsed()/1024));
}//GEN-LAST:event_jButton1ActionPerformed
public void generateTree(final Hashtable<Status,Operation> tree,Status st,final Status ed,final Status meet,int len,final int idx){
if(treeImage[idx]==null){
treeImage[idx]=new BufferedImage(treePane.getWidth(),treePane.getHeight(),BufferedImage.TYPE_INT_RGB);
final int h=(int)(treePane.getSize().getHeight()-20)/len;
int x=(int)(treePane.getSize().getWidth())/2;
Graphics g=treeImage[idx].getGraphics();
g.setColor(Color.white);
g.fillRect(0,0,treePane.getWidth(),treePane.getHeight());
class Node{
int lx,ly,yr;
Status t;
Node(int x,int y,int r,Status v){
lx=x;ly=y;t=v;yr=r;
}
void expand(Stack<Node> nodes,Graphics g,Node light,boolean oren){
int[] status=t.value;
int lev=t.level,num=1;
Status[] temp=new Status[4];
if(status[9]>3){
temp[0]=new Status(AbstractEightAnalyse.move(status,'u'),lev+1);
if(!(tree.containsKey(temp[0]) && tree.get(temp[0]).op=='u')){
temp[0]=null;
}else{
tree.remove(temp[0]);
num++;
}
}
if(status[9]<7){
temp[1]=new Status(AbstractEightAnalyse.move(status,'d'),lev+1);
if(!(tree.containsKey(temp[1]) && tree.get(temp[1]).op=='d' )){
temp[1]=null;
}else{
tree.remove(temp[1]);
num++;
}
}
if(status[9]%3!=0){
temp[2]=new Status(AbstractEightAnalyse.move(status,'r'),lev+1);
if(!(tree.containsKey(temp[2]) && tree.get(temp[2]).op=='r')){
temp[2]=null;
}else{
tree.remove(temp[2]);
num++;
}
}
if(status[9]%3!=1){
temp[3]=new Status(AbstractEightAnalyse.move(status,'l'),lev+1);
if(!(tree.containsKey(temp[3]) && tree.get(temp[3]).op=='l')){
temp[3]=null;
}else{
tree.remove(temp[3]);
num++;
}
}
int div=(2*yr)/num;
int pt=lx-yr+div;
int dy;
for(int i=0;i<4;i++){
if(temp[i]!=null){
dy=oren?ly+h:ly-h;
if((temp[i].equals(ed))||(idx==2 && temp[i].equals(meet))){
light.lx=pt;
light.ly=dy;
}
nodes.push(new Node(pt,dy,div,temp[i]));
g.drawLine(lx,ly,pt,dy);
g.fillOval(pt-2,dy,4,4);
pt+=div;
}
}
}
}
g.setColor(Color.red);
g.fillOval(x-5,5,10,10);
g.setColor(Color.black);
tree.remove(st);
Stack<Node> treelist=new Stack<Node>();
treelist.push(new Node(x,10,x,st));
Node node,light=new Node(0,0,0,null);
while(treelist.size()>0){
node=treelist.pop();
node.expand(treelist,g,light,true);
}
if(idx==2){
g.setColor(Color.red);
g.fillOval(x-5,treePane.getHeight()-20,10,10);
g.setColor(Color.black);
tree.remove(ed);
treelist.push(new Node(x,treePane.getHeight()-20,x,ed));
while(treelist.size()>0){
node=treelist.pop();
node.expand(treelist,g,light,false);
}
}
g.setColor(Color.red);
g.fillOval(light.lx-5,light.ly-5,10,10);
g.setColor(Color.black);
}
}
public void setAnalyse(int i,EightAnalyse ea){
this.ea.add(i,ea);
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JLabel a1mu;
private javax.swing.JLabel a1tn;
private javax.swing.JLabel a1tu;
private javax.swing.JLabel a2mu;
private javax.swing.JLabel a2tn;
private javax.swing.JLabel a2tu;
private javax.swing.JLabel a3mu;
private javax.swing.JLabel a3tn;
private javax.swing.JLabel a3tu;
private javax.swing.JButton backward;
private javax.swing.JLabel edStatus;
private javax.swing.JButton forward;
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JComboBox jComboBox1;
private javax.swing.JComboBox jComboBox2;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel11;
private javax.swing.JLabel jLabel12;
private javax.swing.JLabel jLabel13;
private javax.swing.JLabel jLabel14;
private javax.swing.JLabel jLabel15;
private javax.swing.JLabel jLabel16;
private javax.swing.JLabel jLabel24;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JSeparator jSeparator1;
private javax.swing.JSeparator jSeparator2;
private javax.swing.JSeparator jSeparator3;
private javax.swing.JTabbedPane jTabbedPane1;
private javax.swing.JLabel jl1;
private javax.swing.JLabel jl2;
private javax.swing.JLabel jl3;
private javax.swing.JLabel jl4;
private javax.swing.JLabel jl5;
private javax.swing.JLabel jl6;
private javax.swing.JLabel jl7;
private javax.swing.JLabel jl8;
private javax.swing.JLabel jl9;
private javax.swing.JToggleButton run;
private javax.swing.JSlider slider;
private javax.swing.JLabel stStatus;
private javax.swing.JButton stop;
private javax.swing.JPanel treePane;
// End of variables declaration//GEN-END:variables
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -