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?