📄 lastwindow2.java
字号:
/*
* LastWindow.java
*
* Created on 2007年10月21日, 下午4:42
*/
package text2;
import javax.swing.table.TableModel;
/**
*
* @author user
*/
public class LastWindow2 extends javax.swing.JFrame {
private TableModel data;
TableModel start;
TableModel end;
public int a[]=new int[9];
public int c[]=new int[9];
/** Creates new form LastWindow */
public LastWindow2() {
initComponents();
}
/** 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 Form Editor.
*/
// <editor-fold defaultstate="collapsed" desc=" 生成的代码 ">//GEN-BEGIN:initComponents
private void initComponents() {
jTable2 = new javax.swing.JTable();
jTable1 = new javax.swing.JTable();
jButton1 = new javax.swing.JButton();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jTextField1 = new javax.swing.JTextField();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("\u516b\u6570\u7801\u95ee\u9898A*\u641c\u7d22");
jTable2.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null},
{null, null, null},
{null, null, null}
},
new String [] {
"Title 1", "", ""
}
));
jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null},
{null, null, null},
{null, null, null}
},
new String [] {
"Title 1", "", ""
}
));
jButton1.setText("\u641c\u7d22");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jLabel1.setText("\u8d77\u59cb\u7ed3\u70b9");
jLabel2.setText("\u76ee\u6807\u7ed3\u70b9");
jLabel3.setText("\u516b\u6570\u7801A*\u641c\u7d22");
jLabel4.setText("\u662f\u5426\u6709\u89e3");
org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
.add(54, 54, 54)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jLabel1)
.add(jLabel4))
.add(jLabel2))
.add(36, 36, 36)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
.add(jTextField1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 26, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 169, Short.MAX_VALUE)
.add(jButton1))
.add(layout.createSequentialGroup()
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING, false)
.add(org.jdesktop.layout.GroupLayout.LEADING, jTable1, 0, 0, Short.MAX_VALUE)
.add(org.jdesktop.layout.GroupLayout.LEADING, jTable2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 103, Short.MAX_VALUE))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 149, Short.MAX_VALUE))))
.add(layout.createSequentialGroup()
.add(116, 116, 116)
.add(jLabel3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 135, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.addContainerGap()
.add(jLabel3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 26, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(24, 24, 24)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jLabel1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 31, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(jTable2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.add(48, 48, 48)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(jLabel2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 27, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(jTable1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.add(24, 24, 24)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(jLabel4, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 23, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(jButton1)
.add(jTextField1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.addContainerGap(43, Short.MAX_VALUE))
);
pack();
}// </editor-fold>//GEN-END:initComponents
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
// TODO 将在此处添加您的处理代码:
int parentnum=0;
if(evt.getActionCommand()=="搜索"){
setData(jTable2.getModel());
start=getData();
setData(jTable1.getModel());
end=getData();
String s0=(String)(start.getValueAt(0,0));
if(s0!=null)
a[0]=Integer.parseInt(s0);
String s1=(String)(start.getValueAt(0,1));
if(s1!=null)
a[1]=Integer.parseInt(s1);
String s2=(String)(start.getValueAt(0,2));
if(s2!=null)
a[2]=Integer.parseInt(s2);
String s3=(String)(start.getValueAt(1,0));
if(s3!=null)
a[3]=Integer.parseInt(s3);
String s4=(String)(start.getValueAt(1,1));
if(s4!=null)
a[4]=Integer.parseInt(s4);
String s5=(String)(start.getValueAt(1,2));
if(s5!=null)
a[5]=Integer.parseInt(s5);
String s6=(String)(start.getValueAt(2,0));
if(s6!=null)
a[6]=Integer.parseInt(s6);
String s7=(String)(start.getValueAt(2,1));
if(s7!=null)
a[7]=Integer.parseInt(s7);
String s8=(String)(start.getValueAt(2,2));
if(s8!=null)
a[8]=Integer.parseInt(s8);
String s10=(String)(end.getValueAt(0,0));
if(s10!=null)
c[0]=Integer.parseInt(s10);
String s11=(String)(end.getValueAt(0,1));
if(s11!=null)
c[1]=Integer.parseInt(s11);
String s12=(String)(end.getValueAt(0,2));
if(s12!=null)
c[2]=Integer.parseInt(s12);
String s13=(String)(end.getValueAt(1,0));
if(s13!=null)
c[3]=Integer.parseInt(s13);
String s14=(String)(end.getValueAt(1,1));
if(s14!=null)
c[4]=Integer.parseInt(s14);
String s15=(String)(end.getValueAt(1,2));
if(s15!=null)
c[5]=Integer.parseInt(s15);
String s16=(String)(end.getValueAt(2,0));
if(s16!=null)
c[6]=Integer.parseInt(s16);
String s17=(String)(end.getValueAt(2,1));
if(s17!=null)
c[7]=Integer.parseInt(s17);
String s18=(String)(end.getValueAt(2,2));
if(s18!=null)
c[8]=Integer.parseInt(s18);
int x=judge(a);
int y=judge(c);
if(judge1(x,y)==1){
jTextField1.setText("有解");
EightNum eightnum=new EightNum(a,c);
tanchu window=new tanchu();
eightnum.扩展_并查找结点(eightnum.初始结点);
while(eightnum.f!=0){
eightnum.局部结点1=eightnum.取最优结点();
eightnum.open[eightnum.opennum]=eightnum.局部结点1;
eightnum.opennum=eightnum.opennum+1;
eightnum.扩展_并查找结点(eightnum.局部结点1);
}
eightnum.中间结点=eightnum.目标结点.parent;
while(eightnum.中间结点.等于(eightnum.初始结点)==false){
eightnum.路径[parentnum]=eightnum.中间结点;
parentnum++;
//eightnum.printnode(eightnum.temp);
eightnum.中间结点=eightnum.中间结点.parent;
}
eightnum.路径[parentnum]=eightnum.初始结点;
System.out.println("从开始结点到目标结点的路径是");
while(parentnum>0){
eightnum.打印结点(eightnum.路径[parentnum]);
System.out.println(eightnum.路径[parentnum].深度+eightnum.路径[parentnum].不相同结点个数(eightnum.目标结点));
System.out.println(" "+" ↓ ");
System.out.println(" "+" ↓ ");
parentnum--;
}
eightnum.打印结点(eightnum.目标结点);
}
else{
jTextField1.setText("无解");
}
}
}//GEN-LAST:event_jButton1ActionPerformed
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new LastWindow2().setVisible(true);
}
});
}
public TableModel getData(){
return data;
}
public void setData(TableModel data){
this.data = data;
}
public int judge(int m[]){
int total=0;
for(int i=8;i>=0;i--){
if(i>0){
for(int j=i-1;j>=0;j--){
if(m[i]>m[j]){
if(m[j]!=0){
total++;
}
}
}
}
}
return total;
}
public int judge1(int p,int q){
if((p%2)!=0&&(q%2)!=0){
return 1;
}
else return 0;
}
// 变量声明 - 不进行修改//GEN-BEGIN:variables
private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JTable jTable1;
private javax.swing.JTable jTable2;
private javax.swing.JTextField jTextField1;
// 变量声明结束//GEN-END:variables
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -