/* * * * Created on Jul 14, 2009, 3:32:44 PM */ import java.io.*; import java.text.*; import java.util.regex.*; import java.lang.Math.*; /** * * @author Tyler Zimmerman */ public class BeadGeometryMeltedMarkers extends javax.swing.JFrame { /** Creates new form NewJFrame */ public BeadGeometryMeltedMarkers() { 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. */ @SuppressWarnings("unchecked") // private void initComponents() { jLabel1 = new javax.swing.JLabel(); jTextField1 = new javax.swing.JTextField(); jLabel2 = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel(); jTextField2 = new javax.swing.JTextField(); jLabel4 = new javax.swing.JLabel(); jTextField3 = new javax.swing.JTextField(); jLabel5 = new javax.swing.JLabel(); jLabel6 = new javax.swing.JLabel(); jTextField4 = new javax.swing.JTextField(); jLabel7 = new javax.swing.JLabel(); jTextField5 = new javax.swing.JTextField(); jLabel8 = new javax.swing.JLabel(); jLabel9 = new javax.swing.JLabel(); jTextField6 = new javax.swing.JTextField(); jLabel10 = new javax.swing.JLabel(); jLabel11 = new javax.swing.JLabel(); jTextField7 = new javax.swing.JTextField(); jLabel12 = new javax.swing.JLabel(); jTextField8 = new javax.swing.JTextField(); jTextField9 = new javax.swing.JTextField(); jLabel13 = new javax.swing.JLabel(); jLabel14 = new javax.swing.JLabel(); jTextField10 = new javax.swing.JTextField(); jTextField11 = new javax.swing.JTextField(); jTextField12 = new javax.swing.JTextField(); jTextField13 = new javax.swing.JTextField(); jLabel15 = new javax.swing.JLabel(); jLabel16 = new javax.swing.JLabel(); jLabel17 = new javax.swing.JLabel(); jLabel18 = new javax.swing.JLabel(); jTextField14 = new javax.swing.JTextField(); jTextField15 = new javax.swing.JTextField(); jTextField16 = new javax.swing.JTextField(); jLabel19 = new javax.swing.JLabel(); jLabel20 = new javax.swing.JLabel(); jLabel21 = new javax.swing.JLabel(); jLabel22 = new javax.swing.JLabel(); jTextField20 = new javax.swing.JTextField(); jLabel25 = new javax.swing.JLabel(); jButton1 = new javax.swing.JButton(); jLabel27 = new javax.swing.JLabel(); jTextField17 = new javax.swing.JTextField(); jTextField18 = new javax.swing.JTextField(); jTextField19 = new javax.swing.JTextField(); jTextField21 = new javax.swing.JTextField(); jLabel23 = new javax.swing.JLabel(); jLabel24 = new javax.swing.JLabel(); jLabel26 = new javax.swing.JLabel(); jScrollPane1 = new javax.swing.JScrollPane(); jTextArea1 = new javax.swing.JTextArea(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); jLabel1.setText("Full path of working directory"); jTextField1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jTextField1ActionPerformed(evt); } }); jLabel2.setText("Bead Geometry program to create custom Bruker geometry files using melted calibration markers"); jLabel3.setText("Filenames"); jTextField2.setText(".txt"); jLabel4.setText("Stretched bead coordinates filename"); jTextField3.setText(".txt"); jTextField3.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jTextField3ActionPerformed(evt); } }); jLabel5.setText("Filename of geometry file to be created"); jLabel6.setText("Scaling parameters"); jLabel7.setText("Average number of pixels between markers"); jTextField5.setText("0"); jTextField5.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jTextField5ActionPerformed(evt); } }); jLabel8.setText("Orientation difference (degrees)"); jLabel9.setText("Common points"); jLabel10.setText("Note: if using less than 4 common points, the remaining points should have duplicate values"); jLabel11.setText("X1 (pixels)"); jLabel12.setText("Y1 (pixels)"); jTextField9.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jTextField9ActionPerformed(evt); } }); jLabel13.setText("X1 (fractional)"); jLabel14.setText("Y1 (fractional)"); jTextField11.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jTextField11ActionPerformed(evt); } }); jLabel15.setText("X2 (pixels)"); jLabel16.setText("Y2 (pixels)"); jLabel17.setText("X2 (fractional)"); jLabel18.setText("Y2 (fractional)"); jLabel19.setText("X3 (pixels)"); jLabel20.setText("Y3 (pixels)"); jLabel21.setText("X3 (fractional)"); jLabel22.setText("Y3 (fractional)"); jLabel25.setText("X4 (fractional)"); jButton1.setText("Go!"); jButton1.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { jButton1MouseClicked(evt); } }); jLabel27.setText("Messages during run:"); jTextField21.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jTextField21ActionPerformed(evt); } }); jLabel23.setText("X4 (pixels)"); jLabel24.setText("Y4 (pixels)"); jLabel26.setText("Y4 (fractional)"); jTextArea1.setColumns(20); jTextArea1.setRows(5); jScrollPane1.setViewportView(jTextArea1); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 263, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel1))) .addGroup(layout.createSequentialGroup() .addGap(56, 56, 56) .addComponent(jLabel2)) .addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(jLabel3)) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) .addComponent(jTextField3, javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jTextField2, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 76, Short.MAX_VALUE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel5) .addComponent(jLabel4))) .addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(jLabel6)) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) .addComponent(jTextField5, javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jTextField4, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 74, Short.MAX_VALUE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel8) .addComponent(jLabel7))) .addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(jLabel9)) .addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(jLabel10)) .addGroup(layout.createSequentialGroup() .addGap(269, 269, 269) .addComponent(jButton1)) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel27) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 393, javax.swing.GroupLayout.PREFERRED_SIZE))) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(jTextField7) .addComponent(jTextField6, javax.swing.GroupLayout.DEFAULT_SIZE, 58, Short.MAX_VALUE) .addComponent(jTextField8, javax.swing.GroupLayout.Alignment.TRAILING)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel13) .addComponent(jLabel11) .addComponent(jLabel12))) .addGroup(layout.createSequentialGroup() .addComponent(jTextField9, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel14) .addGap(10, 10, 10) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jTextField10, javax.swing.GroupLayout.PREFERRED_SIZE, 24, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jTextField11, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel15) .addComponent(jLabel16))) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() .addComponent(jTextField12, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jLabel17)) .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() .addComponent(jTextField13, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel18)))))) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jTextField16, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jTextField17, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jTextField15, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jTextField14, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel20) .addComponent(jLabel19) .addComponent(jLabel22) .addComponent(jLabel21)) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(11, 11, 11) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jTextField19, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jTextField18, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) .addGroup(layout.createSequentialGroup() .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jTextField21, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jTextField20, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel23) .addComponent(jLabel24) .addComponent(jLabel26) .addComponent(jLabel25)))) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jTextField10, jTextField11, jTextField12, jTextField13, jTextField14, jTextField15, jTextField16, jTextField17, jTextField18, jTextField19, jTextField20, jTextField21, jTextField6, jTextField7, jTextField8, jTextField9}); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(9, 9, 9) .addComponent(jLabel2) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jLabel1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jLabel3) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel4)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel5)) .addGap(18, 18, 18) .addComponent(jLabel6) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jTextField4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel7)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jTextField5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel8)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jLabel9) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel10, javax.swing.GroupLayout.PREFERRED_SIZE, 14, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jTextField6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel11)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jTextField7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel12)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(jTextField8, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jTextField9, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel14))) .addComponent(jLabel13)) .addGap(21, 21, 21) .addComponent(jButton1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel27)) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jTextField10, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel15) .addComponent(jTextField14, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel19)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jTextField11, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel16) .addComponent(jTextField15, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel20)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jTextField12, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel17) .addComponent(jTextField16, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel22) .addComponent(jTextField20, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel25)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jTextField13, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel18) .addComponent(jTextField17, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel21) .addComponent(jTextField21, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel26)))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel23) .addComponent(jTextField18, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel24) .addComponent(jTextField19, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); pack(); }// private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void jTextField5ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void jTextField11ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void jButton1MouseClicked(java.awt.event.MouseEvent evt) { try{ String WorkingPath = jTextField1.getText(); if (WorkingPath.endsWith("\\") == false | WorkingPath.endsWith("/") == false ) { WorkingPath = WorkingPath + "\\"; } String OutGeoFilename = jTextField3.getText(); BufferedReader inIN = new BufferedReader(new FileReader(jTextField2.getText())); int INlineCount = 0; do { String lineIN = inIN.readLine(); if (lineIN == null) break; INlineCount++; } while (true); double FractionalDist = 0.086957; double NumPixels = Double.valueOf(jTextField4.getText()); double PlateOriginXa = Double.valueOf(jTextField6.getText()); double PlateOriginYa = Double.valueOf(jTextField7.getText()); double PlateOriginXb = Double.valueOf(jTextField10.getText()); double PlateOriginYb = Double.valueOf(jTextField11.getText()); double PlateOriginXc = Double.valueOf(jTextField14.getText()); double PlateOriginYc = Double.valueOf(jTextField15.getText()); double PlateOriginXd = Double.valueOf(jTextField18.getText()); double PlateOriginYd = Double.valueOf(jTextField19.getText()); double BrukerOriginXa = Double.valueOf(jTextField8.getText()).doubleValue(); double BrukerOriginYa = Double.valueOf(jTextField9.getText()).doubleValue(); double BrukerOriginXb = Double.valueOf(jTextField12.getText()).doubleValue(); double BrukerOriginYb = Double.valueOf(jTextField13.getText()).doubleValue(); double BrukerOriginXc = Double.valueOf(jTextField16.getText()).doubleValue(); double BrukerOriginYc = Double.valueOf(jTextField17.getText()).doubleValue(); double BrukerOriginXd = Double.valueOf(jTextField20.getText()).doubleValue(); double BrukerOriginYd = Double.valueOf(jTextField21.getText()).doubleValue(); double DegRot = Math.toRadians(Double.valueOf(jTextField5.getText())); int rownum = -1; double[][] INCoord = new double[INlineCount][2]; LineNumberReader lnr = new LineNumberReader(new FileReader(jTextField2.getText())); lnr.setLineNumber(1); StreamTokenizer stok = new StreamTokenizer(lnr); stok.parseNumbers(); stok.eolIsSignificant(true); stok.nextToken(); while (stok.ttype != StreamTokenizer.TT_EOF) { double x=0; double y=0; while (stok.ttype != StreamTokenizer.TT_EOF) { for (int colnum=1; colnum<=3; colnum++) { if (colnum==1) {x=stok.nval; } if (colnum==2) {y=stok.nval; } if (colnum==3) {stok.nextToken(); rownum++; break;} stok.nextToken(); } double[] Coord = new double[2]; Coord[0]=x; Coord[1]=y; for (int col=0; col<=1; col++) { INCoord[rownum][col] = Coord[col]; } if (stok.ttype == StreamTokenizer.TT_EOF) {break;} } if (stok.ttype == StreamTokenizer.TT_EOF) {break;} } double[][] OutCoordTemp = new double[INCoord.length][2]; double PlateOriginX = 0; double PlateOriginY = 0; for (int i = 0; i <= INCoord.length-1; i++) { Double DistA = Math.sqrt( Math.pow((INCoord[i][0] - PlateOriginXa), 2) + Math.pow((PlateOriginYa - INCoord[i][1]), 2) ); Double DistB = Math.sqrt( Math.pow((INCoord[i][0] - PlateOriginXb), 2) + Math.pow((PlateOriginYb - INCoord[i][1]), 2) ); Double DistC = Math.sqrt( Math.pow((INCoord[i][0] - PlateOriginXc), 2) + Math.pow((PlateOriginYc - INCoord[i][1]), 2) ); Double DistD = Math.sqrt( Math.pow((INCoord[i][0] - PlateOriginXd), 2) + Math.pow((PlateOriginYd - INCoord[i][1]), 2) ); if (DistA <= DistB && DistA <= DistC && DistA <= DistD) { PlateOriginX = PlateOriginXa; PlateOriginY = PlateOriginYa; } if (DistB <= DistA && DistB <= DistC && DistB <= DistD) { PlateOriginX = PlateOriginXb; PlateOriginY = PlateOriginYb; } if (DistC <= DistA && DistC <= DistB && DistC <= DistD) { PlateOriginX = PlateOriginXc; PlateOriginY = PlateOriginYc; } if (DistD <= DistA && DistD <= DistB && DistD <= DistC) { PlateOriginX = PlateOriginXd; PlateOriginY = PlateOriginYd; } OutCoordTemp[i][0] = (INCoord[i][0] - PlateOriginX) * FractionalDist/NumPixels; OutCoordTemp[i][1] = (PlateOriginY - INCoord[i][1]) * FractionalDist/NumPixels; } double[][] OutCoord = new double[OutCoordTemp.length][2]; for (int i = 0; i <= INCoord.length-1; i++) { Double DistA = Math.sqrt( Math.pow((INCoord[i][0] - PlateOriginXa), 2) + Math.pow((PlateOriginYa - INCoord[i][1]), 2) ); Double DistB = Math.sqrt( Math.pow((INCoord[i][0] - PlateOriginXb), 2) + Math.pow((PlateOriginYb - INCoord[i][1]), 2) ); Double DistC = Math.sqrt( Math.pow((INCoord[i][0] - PlateOriginXc), 2) + Math.pow((PlateOriginYc - INCoord[i][1]), 2) ); Double DistD = Math.sqrt( Math.pow((INCoord[i][0] - PlateOriginXd), 2) + Math.pow((PlateOriginYd - INCoord[i][1]), 2) ); if (DistA < DistB && DistA < DistC && DistA <= DistD) { OutCoord[i][0] = OutCoordTemp[i][0]*Math.cos(DegRot) + OutCoordTemp[i][1]*Math.sin(DegRot) + BrukerOriginXa; OutCoord[i][1] = -1*OutCoordTemp[i][0]*Math.sin(DegRot) + OutCoordTemp[i][1]*Math.cos(DegRot) + BrukerOriginYa; } if (DistB < DistA && DistB < DistC && DistB <= DistD) { OutCoord[i][0] = OutCoordTemp[i][0]*Math.cos(DegRot) + OutCoordTemp[i][1]*Math.sin(DegRot) + BrukerOriginXb; OutCoord[i][1] = -1*OutCoordTemp[i][0]*Math.sin(DegRot) + OutCoordTemp[i][1]*Math.cos(DegRot) + BrukerOriginYb; } if (DistC < DistA && DistC < DistB && DistC <= DistD) { OutCoord[i][0] = OutCoordTemp[i][0]*Math.cos(DegRot) + OutCoordTemp[i][1]*Math.sin(DegRot) + BrukerOriginXc; OutCoord[i][1] = -1*OutCoordTemp[i][0]*Math.sin(DegRot) + OutCoordTemp[i][1]*Math.cos(DegRot) + BrukerOriginYc; } if (DistD <= DistA && DistD <= DistB && DistD <= DistC) { OutCoord[i][0] = OutCoordTemp[i][0]*Math.cos(DegRot) + OutCoordTemp[i][1]*Math.sin(DegRot) + BrukerOriginXd; OutCoord[i][1] = -1*OutCoordTemp[i][0]*Math.sin(DegRot) + OutCoordTemp[i][1]*Math.cos(DegRot) + BrukerOriginYd; } } System.out.println(OutCoordTemp[0][0]); System.out.println(OutCoordTemp[0][1]); BufferedWriter outFile = new BufferedWriter(new FileWriter(OutGeoFilename)); PrintWriter out = new PrintWriter(outFile); DecimalFormat df = new DecimalFormat("#.######"); for (int i=0; i <= INCoord.length-1; i++) { out.print(df.format(OutCoord[i][0]) + " "); out.println(df.format(OutCoord[i][1])); } out.close(); jTextArea1.setText("Run has finished"); } catch (IOException e) {System.out.println("Error"); jTextArea1.setText(e.toString());} } private void jTextField9ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void jTextField21ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void jTextField3ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } /** * @param args the command line arguments */ public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new BeadGeometryMeltedMarkers().setVisible(true); } }); } // Variables declaration - do not modify private javax.swing.JButton jButton1; 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 jLabel17; private javax.swing.JLabel jLabel18; private javax.swing.JLabel jLabel19; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel20; private javax.swing.JLabel jLabel21; private javax.swing.JLabel jLabel22; private javax.swing.JLabel jLabel23; private javax.swing.JLabel jLabel24; private javax.swing.JLabel jLabel25; private javax.swing.JLabel jLabel26; private javax.swing.JLabel jLabel27; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; 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.JScrollPane jScrollPane1; private javax.swing.JTextArea jTextArea1; private javax.swing.JTextField jTextField1; private javax.swing.JTextField jTextField10; private javax.swing.JTextField jTextField11; private javax.swing.JTextField jTextField12; private javax.swing.JTextField jTextField13; private javax.swing.JTextField jTextField14; private javax.swing.JTextField jTextField15; private javax.swing.JTextField jTextField16; private javax.swing.JTextField jTextField17; private javax.swing.JTextField jTextField18; private javax.swing.JTextField jTextField19; private javax.swing.JTextField jTextField2; private javax.swing.JTextField jTextField20; private javax.swing.JTextField jTextField21; private javax.swing.JTextField jTextField3; private javax.swing.JTextField jTextField4; private javax.swing.JTextField jTextField5; private javax.swing.JTextField jTextField6; private javax.swing.JTextField jTextField7; private javax.swing.JTextField jTextField8; private javax.swing.JTextField jTextField9; // End of variables declaration }