Esse é a primeira tela do meu programa
import javax.swing.<em>;
import java.awt.</em>;
import java.awt.event.*;
public class abertura extends JFrame implements ActionListener
{
JTextField txtmat1 = new JTextField();
JTextField txtmat2 = new JTextField();
JLabel lb1 = new JLabel (“Numero de Linhas”);
JLabel lb2 = new JLabel (“Numero de Colunas”);
JButton btnok = new JButton(“Ok”);
public abertura()
{
JPanel painelbotoes = new JPanel();
JPanel paineldados = new JPanel();
paineldados.setLayout(new GridLayout(2,2));
paineldados.setBackground(new Color(54, 100, 139));
painelbotoes.setBackground(new Color(54, 100, 139));
lb1.setBackground(new Color(54, 100, 139));
lb2.setBackground(new Color(54, 100, 139));
getContentPane().setBackground(new Color(54, 100, 139));
paineldados.add(lb1);
paineldados.add(txtmat1);
paineldados.add(lb2);
paineldados.add(txtmat2);
painelbotoes.add(btnok);
getContentPane().add(paineldados, BorderLayout.NORTH);
getContentPane().add(painelbotoes, BorderLayout.SOUTH);
btnok.addActionListener(this);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("Escolha o Tamanho da matriz");
this.setSize(400,200);
this.setResizable(false);
setVisible(true);
}
public void actionPerformed(ActionEvent event)
{
if (event.getSource() == btnok)
{
calculocanto cal = new calculocanto(Integer.parseInt(txtmat1.getText()),Integer.parseInt(txtmat2.getText()));
}
}
public static void main(String[] args)
{
new abertura();
}
}
E essa a a segunda tela q é chamada depois que dá Ok na primeira…
import javax.swing.<em>;
import java.awt.</em>;
import java.awt.event.*;
public class calculocanto extends JFrame implements ActionListener
{
JButton btncalcular = new JButton(“Calcular”);
JLabel lbresposta = new JLabel (“Inserir valores”);
int linha,coluna;
int[][] matriz= new int[linha][coluna];
JTextField[][] txtmat = new JTextField[linha][coluna];
public calculocanto(int lin,int col)
{
linha=lin;
coluna=col;
JPanel painelbotoes = new JPanel();
JPanel paineldados = new JPanel();
JPanel painelsul = new JPanel();
painelbotoes.setLayout(new BoxLayout(painelbotoes, BoxLayout.X_AXIS));
paineldados.setLayout(new GridLayout(lin,col));
painelsul.setLayout(new BoxLayout(painelsul, BoxLayout.Y_AXIS));
painelsul.setBackground(new Color(54, 100, 139));
paineldados.setBackground(new Color(54, 100, 139));
painelbotoes.setBackground(new Color(54, 100, 139));
lbresposta.setBackground(new Color(54, 100, 139));
painelbotoes.add(btncalcular);
for (int w=0; w<lin; w++)
{
for(int u=0; u<col; u++)
{
txtmat[w][u] = new JTextField();
paineldados.add(txtmat[w][u]);
}
}
txtmat[0][0].setEnabled(false);
txtmat[0][0].setText("Ori - Dest");
txtmat[0][col-1].setEnabled(false);
txtmat[0][col-1].setText("Oferta");
txtmat[lin-1][0].setEnabled(false);
txtmat[lin-1][0].setText("Procura");
txtmat[lin-1][col-1].setEnabled(false);
txtmat[0][0].setBackground(new Color(54, 100, 139));
txtmat[0][col-1].setBackground(new Color(54, 100, 139));
txtmat[lin-1][0].setBackground(new Color(54, 100, 139));
txtmat[lin-1][col-1].setBackground(new Color(54, 100, 139));
painelsul.add(paineldados);
getContentPane().add(lbresposta, BorderLayout.NORTH);
getContentPane().add(painelbotoes, BorderLayout.SOUTH);
getContentPane().add(painelsul, BorderLayout.CENTER);
btncalcular.addActionListener(this);
lbresposta.setHorizontalAlignment(SwingConstants.CENTER);
//this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("Canto Noroeste");
this.setSize(400,200);
this.setResizable(false);
setVisible(true);
//pack();
}
public void calcula()
{
for(int i=0;i<linha;i++)
{
for(int j=0;j<coluna;j++)
{
matriz[i][j]=Integer.parseInt(txtmat[i][j].getText());
}
}
int[][] mat= new int[linha][coluna];
int lin=1;
int col=1;
int z=coluna-2;
int aux=0;
for(int i=0;i<linha;i++)
{
for(int j=0;j<coluna;j++)
{
mat[i][j]=0;
}
}
while(z!=0)
{
aux=matriz[linha-1][col]-matriz[lin][coluna-1];
if((aux<0))
{
matriz[lin][coluna-1]=(-1*aux);
mat[lin][col]=matriz[linha-1][col];
matriz[linha-1][col]=0;
col++;
z--;
}
if(aux>0)
{
matriz[linha-1][col]=aux;
mat[lin][col]=matriz[lin][coluna-1];
matriz[lin][coluna-1]=0;
lin++;
}
if(aux==0)
{
mat[lin][col]=matriz[lin][coluna-1];
matriz[lin][coluna-1]=0;
matriz[linha-1][col]=0;
z--;
lin++;
col++;
}
}
for(int k=1;k<linha;k++)
{
System.out.println("");
for(int l=1;l<coluna;l++)
{
System.out.print("|"+mat[k][l]+"|");
}
}
}
public void actionPerformed(ActionEvent event)
{
if (event.getSource() == btncalcular)
{
calcula();
}
}
/*public static void main(String[] args)
{
new calculocanto();
}*/
}
Ele compila o codigo e não acha nenhum erro… mas na hora de rodar no momento que clico no ok da primeira tela ele o erro que ta na msg do arquivo em anexo… agradeço desde de já…


