Pô galera, vamos dar uma força ai, to com estrema necessidade disto, se ninguém quizer mexer no meu código pq toma tempo, me manda um com as especificações q citei OO abaixo. Não consigo entender o que fazer para mudar. Por Favor.
Tenho um trabalho para aula com conexão jbdc access e interface swing, fiz desse modo descrito abaixo, porém, meu professor disse estar errado pq parece estar em modo estruturado e não OO e ainda mais ele que usando técnica 3 camadas.
Só que não consigo entender como manipular em 3 camadas, talvez por causa do uso da interface, já q todos exemplos que li não utilizão interface, então tenho dificuldades de relacionar. Se alguém tiver paciencencia de transformar esse meu metodo abaixo em OO 3 camadas, eu agradeço muito. Se quizerem colem o código alterado aqui ou me enviem MP ou pro meu email [email removido]
:sad: // BotoesPainel.java
// Definição da classe BotoesPainel
import java.awt.<em>;
import java.awt.event.</em>;
import java.sql.<em>;
import javax.swing.</em>;
import javax.swing.ScrollPaneLayout;
public class BotoesPainel extends JPanel
{
private JButton addName;
public BotoesPainel( Connection c, InterfacePedidos s,
JTextArea t )
{
setLayout( new GridLayout( 2, 1 ) );
Icon salvar = new ImageIcon( "Imagens/Gravar.gif" );
addName = new JButton( salvar );
addName.addActionListener( new SalvarPedido ( c, s, t ) );
add( addName );
}
}
// InterfacePedidos.java
// Definição da classe InterfacePedidos
import java.awt.<em>;
import java.awt.event.</em>;
import javax.swing.*;
import javax.swing.ScrollPaneLayout;
public class InterfacePedidos extends JPanel
{
private JPanel labelPanel, fieldsPanel;
private String labels[] =
{ "Numero Do Pedido: ", "Código Do Cliente: "
};
// accesso de pacote
JTextField NúmeroDoPedido, CódigoDoCliente;
public InterfacePedidos()
{
// Painel de Interface
labelPanel = new JPanel();
labelPanel.setLayout(new GridLayout( labels.length, 1 ) );
for ( int i = 0; i < labels.length; i++ )
labelPanel.add( new JLabel( labels[ i ], 4) );
// Painel de Campos
fieldsPanel = new JPanel();
fieldsPanel.setLayout(new GridLayout( labels.length, 1 ) );
NúmeroDoPedido = new JTextField( 20 );
NúmeroDoPedido.setEditable( false );
fieldsPanel.add( NúmeroDoPedido );
CódigoDoCliente = new JTextField( 20 );
fieldsPanel.add( CódigoDoCliente );
setLayout( new GridLayout( 1, 2 ) );
add( labelPanel );
add( fieldsPanel );
}
}
// SalvarPedidos.java
// Definição de classe SalvarPedidos
import java.awt.<em>;
import java.awt.event.</em>;
import java.sql.<em>;
import javax.swing.</em>;
import javax.swing.ScrollPaneLayout;
public class SalvarPedido implements ActionListener
{
private InterfacePedidos fields;
private JTextArea output;
private Connection connection;
public SalvarPedido( Connection c, InterfacePedidos f, JTextArea o )
{
connection = c;
fields = f;
output = o;
}
public void actionPerformed( ActionEvent e )
{
try
{
Statement statement = connection.createStatement();
if ( !fields.CódigoDoCliente.getText().equals( "" ) )
{
String query = "INSERT INTO Pedidos (" +
"CódigoDoCliente" +
") VALUES ('" +
fields.CódigoDoCliente.getText() + "', '" + "')";
int result = statement.executeUpdate( query );
if ( result == 1 )
JOptionPane.showMessageDialog(
null, "Operação.... Ok!!!", "Aviso",
JOptionPane.PLAIN_MESSAGE );
else
{
JOptionPane.showMessageDialog(
null, "A gravação falhou!.", "Aviso",
JOptionPane.WARNING_MESSAGE );
fields.CódigoDoCliente.setText( "" );
fields.CódigoDoFuncionário.setText( "" );
}
}
else
{
JOptionPane.showMessageDialog(
null, "\nPreencha os campos obrigatórios para Salvar:\n" +
"\nEntão Click Salvar!!!\n" , "Aviso",
JOptionPane.WARNING_MESSAGE );
statement.close();
}
}
catch ( SQLException sqlex )
{
JOptionPane.showMessageDialog(
null, sqlex.toString(), "Aviso",
JOptionPane.WARNING_MESSAGE );
}
}
}
// Pgprincipal.java
// Inserindo, atualizando e pesquisando dados em um banco de dados
import java.sql.<em>;
import java.awt.</em>;
import java.awt.event.<em>;
import javax.swing.</em>;
import javax.swing.ScrollPaneLayout;
public class Pgprincipal extends JFrame
{
private BotoesPainel controls;
private InterfacePedidos scrollArea;
private JTextArea output;
private String url;
private Connection connect;
private JScrollPane textpane;
public Pgprincipal()
{
super( “Cadastro de Pedidos” );
Container c = getContentPane();
// Inicia o layout da tela
scrollArea = new InterfacePedidos();
c.setLayout( new BorderLayout() );
c.add( new JScrollPane( scrollArea ),
BorderLayout.CENTER );
// Configura a conexão de banco de dados
try
{
url = "jdbc:odbc:trab";
Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );
connect = DriverManager.getConnection( url );
}
catch ( ClassNotFoundException cnfex )
{
// processa ClassNotFoundExceptions aqui
JOptionPane.showMessageDialog(
null, "A conexão falhou!\n" + cnfex.toString(), "Aviso",
JOptionPane.WARNING_MESSAGE );
}
catch ( SQLException sqlex )
{
// processa SQLExceptions aqui
JOptionPane.showMessageDialog(
null, "A conexão falhou!\n", "Aviso",
JOptionPane.WARNING_MESSAGE );
}
catch ( Exception ex )
{
// processa Exceptions remanescentes aqui
JOptionPane.showMessageDialog(
null, ex.toString(), "Aviso",
JOptionPane.WARNING_MESSAGE );
}
// Completa layout de tela
controls = new BotoesPainel( connect, scrollArea, output);
c.add( controls, BorderLayout.NORTH );
setSize( 480, 400 );
move(20, 250);
show();
}
public static void main( String args[] )
{
Pgprincipal ObjPgprincipal = new Pgprincipal();
ObjPgprincipal.addWindowListener(new WindowAdapter()
{
public void windowClosing( WindowEvent e )
{
System.exit( 0 );
}
}
);