Per me non è un problema postare tutto!
Ecco qui!!
codice:
import java.awt.*;
import javax.swing.*;
import java.util.*;
import java.lang.*;
public class Matrice extends javax.swing.JApplet implements Runnable
{
// Dichiarazione dei pannelli utilizzati.
public JTextField TestoOriginale;
public JTextField Chiave;
private JLabel T1;
private JLabel T2;
private JLabel T3;
private JLabel T4;
private JButton CreaMatrice;
private JButton Cancella;
private JPanel pannelloText;
private JPanel tabella;
private JPanel tabella1;
private JTextField[][] matrice1;
private JTextField[] matrice2;
// Metodo di inizializzazione.
public void disegnapannelli()
{
tabella = new JPanel();
tabella1 = new JPanel();
pannelloText = new JPanel();
getContentPane().setLayout(new GridLayout(3,0));
pannelloText.setLayout(new GridLayout(7,0));
pannelloText.add(T1);
pannelloText.add(TestoOriginale);
pannelloText.add(T2);
pannelloText.add(Chiave);
pannelloText.add(CreaMatrice);
pannelloText.add(Cancella);
getContentPane().add(pannelloText);
}
public void init()
{
TestoOriginale = new JTextField();
Chiave = new JTextField();
T1 = new javax.swing.JLabel();
T1.setText(" Inserire il testo da cifrare:");
T2 = new javax.swing.JLabel();
T2.setText(" Inserisci la chiave:");
T3 = new javax.swing.JLabel();
T3.setText(" Testo cifrato:");
T4 = new javax.swing.JLabel();
T4.setText(" Matrice associata: ");
CreaMatrice = new JButton();
CreaMatrice.setText("Cifra");
CreaMatrice.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
creaMatr(evt);
}
});
Cancella = new JButton();
Cancella.setText("Cancella");
Cancella.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
Canc(evt);
}
});
disegnapannelli();
}
public void run()
{
String Testo = TestoOriginale.getText();
String TestoOriginale1 = Testo.replace(" ", "");
String TestoChiave = Chiave.getText();
String totale = TestoChiave + TestoOriginale1;
int x = Chiave.getText().length();
int y = TestoOriginale1.length();
int k = totale.length();
int Nchar = 0;
int ind =0;
int righe = 0;
for (int NumeroRighe = 0 ; NumeroRighe < y ; NumeroRighe++)
{
int controllo = NumeroRighe * x;
if (controllo >= y)
{
righe = NumeroRighe+1;
break;
}
}
matrice1 = new JTextField[righe][x];
matrice2 = new JTextField[righe*x];
// matrice 1
for (int i = 0; i < righe; i++)
{
for (int j = 0; j < x; j++)
{
if (Nchar < k)
{
matrice1[i][j] = new JTextField();
matrice1[i][j].setText (Character.toString(totale.charAt(Nchar)));
matrice1[i][j].setEditable(false);
matrice1[i][j].setHorizontalAlignment(javax.swing.JTextField.CENTER);
Nchar++;
if(i == 0)
matrice1[i][j].setBackground(Color.GREEN);
}
else
{
matrice1[i][j] = new JTextField();
matrice1[i][j].setText ("");
matrice1[i][j].setEditable(false);
matrice1[i][j].setHorizontalAlignment(javax.swing.JTextField.CENTER);
Nchar++;
}
tabella.setLayout(new GridLayout(righe,x));
tabella.add(matrice1[i][j]);
}
}
// Matrice 2
String s = Chiave.getText();
char[] text = new char[s.length()];
text = s.toCharArray();
Arrays.sort(text);
tabella1.add(T3);
for (int i = 0; i < x; i++)
{
String c1 = Character.toString(text[i]);
for (int n = 0; n < x; n ++)
{
String c2 = Character.toString(s.charAt(n));
s.replace (Character.toString(s.charAt(n)),".");
System.out.println(s);
if(c1.equals(c2))
{
for (int p = 1; p < righe; p++)
{
if (!(matrice1[p][n].getText().equals("")))
{
matrice2[ind] = new JTextField();
matrice2[ind].setText(matrice1[p][n].getText());
matrice2[ind].setEditable(false);
tabella1.add(matrice2[ind]);
}
ind ++;
}
}
}
}
pannelloText.add(T4);
getContentPane().add(tabella);
getContentPane().add(tabella1);
setSize(500,501);
}
public void creaMatr(java.awt.event.ActionEvent evt)
{
Thread t = new Thread(this);
t.start();
}
public void Canc(java.awt.event.ActionEvent evt)
{
getAppletContext().showDocument(getDocumentBase());
}
}