Salve ragazzi, non sò come fare per salvare due valori letti da due jtextfield in due rispettivi vettori al click su un bottone apposito.
Ho creato un JFrame in cui ho inserito delle label, due jtextfiel e un bottone..quello che stò provando a fare è:
dopo aver inserito questi due valori "a" e "b" (che sarebbero ascissa e ordinata di una coordiata)
vorrei che clikkando sul bottone, mi venissero fatti dei controlli su a e b e se questi controlli sono rispettati a e b vengano inseriti in due vettori rispettivamente ascisseDir[] e ordinateDir[].
Stò trovando difficoltà anche perchè questi inserimenti di a e b, i relativi controlli e tutto ciò che segue lo avevo fatto nel main che andava a richiamare un'altra classe, ma adesso che la professoressa mi ha detto di inserire tali valori attraverso una finestra, mi sono incasinato un pò.
Posto il codice:
codice:
 
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import lpsolve.*;  
public class DirectionFrame extends javax.swing.JFrame {              

// Variables declaration - do not modify     
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.JSpinner jSpinner1;     
private javax.swing.JTextField jTextField1;     
private javax.swing.JTextField jTextField2;     
// End of variables declaration      

public void actionPerformed(ActionEvent e) {         
         System.exit(0);     
}      
public DirectionFrame() {
         initComponents();
}      
private void initComponents() {          
jLabel1 = new javax.swing.JLabel();         
jTextField1 = new javax.swing.JTextField();         
jTextField2 = new javax.swing.JTextField();         
jLabel2 = new javax.swing.JLabel();         
jLabel3 = new javax.swing.JLabel();         
jButton1 = new javax.swing.JButton();         
jSpinner1 = new javax.swing.JSpinner();         
jLabel4 = new javax.swing.JLabel();          

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);         setTitle("INSERT DIRECTIONS");          

jLabel1.setFont(new java.awt.Font("Times New Roman", 0, 18));          
jLabel1.setText("Per ogni direzione inserisci le coordinate ");          

jTextField1.setFont(new java.awt.Font("Tahoma", 0, 18));        
jTextField2.setFont(new java.awt.Font("Tahoma", 0, 18));

jLabel2.setFont(new java.awt.Font("Times New Roman", 0, 18));          jLabel2.setText("X:");          

jLabel3.setFont(new java.awt.Font("Times New Roman", 0, 18));          jLabel3.setText("Y:");          

jButton1.setFont(new java.awt.Font("Times New Roman", 0, 18));          jButton1.setText("AGGIUNGI");          

jSpinner1.setFont(new java.awt.Font("Times New Roman", 0, 14));           

jLabel4.setFont(new java.awt.Font("Times New Roman", 0, 18));          jLabel4.setText("Selezionare il numero di direzioni da inserire...");          

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());         getContentPane().setLayout(layout);         layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,layout.createSequentialGroup()
.addComponent(jLabel2,javax.swing.GroupLayout.PREFERRED_SIZE, 24,javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jTextField1,javax.swing.GroupLayout.PREFERRED_SIZE, 103,javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(41, 41, 41)
.addComponent(jLabel3)
.addGap(18, 18, 18)
.addComponent(jTextField2,javax.swing.GroupLayout.PREFERRED_SIZE,103,javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(72, 72, 72))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,layout.createSequentialGroup()
.addComponent(jButton1,javax.swing.GroupLayout.PREFERRED_SIZE, 143,javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(151, 151,151))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,layout.createSequentialGroup()
.addComponent(jLabel4,javax.swing.GroupLayout.DEFAULT_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE,Short.MAX_VALUE)
.addGap(18, 18, 18)
.addComponent(jSpinner1, javax.swing.GroupLayout.PREFERRED_SIZE, 51,javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(39, 39, 39))))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,layout.createSequentialGroup()        .addGap(71, 71, 71).addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, 333,Short.MAX_VALUE)
.addGap(47, 47, 47)));
         layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,layout.createSequentialGroup()        .addContainerGap()                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)              .addComponent(jSpinner1,javax.swing.GroupLayout.PREFERRED_SIZE,javax.swing.GroupLayout.DEFAULT_SIZE,javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 20,javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)                 
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 22,javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)             .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)              .addComponent(jLabel3)
.addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, 36,javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 36,javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel2)))
.addGap(13, 13, 13)
.addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 41,javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap()));
pack();
}
          public void jButton1ActionPerformed(java.awt.event.ActionEvent evt){
          int a = Integer.parseInt(jTextField1.getText());
          int b = Integer.parseInt(jTextField2.getText());
          }      
          public static void main(String[] args){
          ProvaMatrice matrix = new ProvaMatrice(); // Creo l'oggetto matrice
          /* Inserisco da tastiera il numero di righe, il numero di colonne e il numero di direzioni*/
          try {
              int n = Integer.parseInt(JOptionPane.showInputDialog(null, "Inserisci il numero di colonne della griglia: "));
             int m = Integer.parseInt(JOptionPane.showInputDialog(null, "Inserisci il numero di righe della griglia: "));
             int k = Integer.parseInt(JOptionPane.showInputDialog(null, "Inserisci il numero di direzioni: "));
              /* Vettori che conterranno rispettivamente le ascisse e le ordinate delle direzioni */
             int[] ascisseDir = new int[k];
             int[] ordinateDir = new int[k];
            
  /* File in cui vengono salvati i dati e i risultati della chiamata a LpSolve*/             
             FileOutputStream file = new FileOutputStream("Results " + n + "x" + m + " dimensions.txt");
             PrintStream scrivi = new PrintStream(file);
              JFrame f = new DirectionFrame();
              scrivi.println("Griglia con " + m + " righe e " + n + " colonne.");
/* Inserisco le k direzioni (a,b) controllando che rispettino determinate proprietà*/ 
              for (int i = 0; i < k; i++) { // questo i devo farlo essere il valore selezionato del JSpinner1
                  int a, b; // sono gli a e b che inserisco nelle jtextfield X = a e Y = b
                  do {
                     /* Ascissa della direzione */ // questi sono i controlli su a e b
                  if (a < 0 || a >= n) { // controllo che non ecceda num colonne della griglia                           System.err.println("Errore: Inserire un valore intero dell'ascissa 'a' positivo e minore di " + n);
                  }
              } while (a < 0 || a >= n);
                 do {
                     /* Ordinata della direzione */
                     b = Integer.parseInt(JOptionPane.showInputDialog(null, "Inserisci l'ordinata della " + (i + 1) + " direzione (può essere anche negativa):"));
                     if (b >= m || b <= -m) { // controllo che non ecceda num righe della griglia                         System.err.println("Errore: Inserire un valore intero per l'ordinata 'b' maggiore di " + (-m) + " e minore " + m);
                     }
                 } while (b >= m || b <= -m); 
      /* Se le coordinate inserite sono coprimi, le salvo nei due rispettivi vettori*/
if (matrix.coprimi(a, b) == true) {
                     ascisseDir[i] = a;
                     ordinateDir[i] = b;
} else {
                     System.err.println("Errore: le coordinate inserite non sono coprime, inserire delle coordinate con Massimo Comun Divisore uguale a 1.");
                     System.exit(0);
                 }
                  System.out.println("l'ascissa della " + (i + 1) + " direzione è " + ascisseDir[i] + " l'ordinata " + ordinateDir[i]);
             }
              /* genero la Matrice A e con l'istruzione dopo la stampo nel file */
             int[][] A = matrix.matrice(m, n, k, ascisseDir, ordinateDir, scrivi);             
             matrix.stampa(n, m, scrivi);
/**
* Qui richiamo altri metodi di una classe ProvaMatrice ma non sono utili ai fini di quel che vorrei fare con il JFrame
*/

} catch (Exception e) {
             System.out.println("Errore. E' stato inserito un valore non valido.");             System.exit(0);
         }
         /* Create and display the form */
         java.awt.EventQueue.invokeLater(new Runnable() {
              public void run() {
                 new DirectionFrame().setVisible(true);
             }
         });
      }
  }
Qualcuno potrebbe gentilmente aiutarmi?
Grazie a tutti in anticipo.