Caso de Uso:Tinhamos que buscar alguns dados de tabelas diferentes para utilizarmos em nosso aplicativo.Para isso, fizemos um barramento SOA (que nao vou postar por motivo de sigilo da empresa...) e conectamos este cliente a ele.Problemas resolvidos com este codigo:Swing: Utilizacao de tabelas dentro de abas, sem a utilizacao de containers.Popular tabelas com array bidimensional de stringsSOA: Transportar strings entre o barramento e o Cliente.----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------import java.awt.Font;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;import javax.swing.table.DefaultTableModel;import javax.xml.rpc.ParameterMode;import javax.xml.rpc.encoding.XMLType;import org.apache.axis.client.Call;import org.apache.axis.client.Service;public class Unitizacao implements ActionListener{ JFrame tela = new JFrame(); JTextField TfOdex; JTable tbData1, tbData2, tbData3, tbData4, tbData5; JTextArea area6 = new JTextArea(); public static void main(String args[]){ // Cria o Objeto para tirar o swing de um metodo static Unitizacao u = new Unitizacao(); u.run(); } public void run(){ // Tenta utilizar uma biblioteca de aparencia para o Swing try{ UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"); }catch(Exception e){ area6.setText(e.getMessage()); } // Layout null para posicionamento manual dos itens tela.setLayout(null); // INICIO GRUPO DE OBJETOS DO CABECALHO // Objeto do texto Odex JLabel LbOdex = new JLabel("ODEX"); // Objeto Font para ajustar o tipo, estilo e tamanho da fonte Font t = new Font("Arial", Font.BOLD, 20); // Atribuindo o Objeto Font ao Objeto do texto Odex LbOdex.setFont(t); // ajustar posicao do elemento no JPanel: (coluna, linha, largura, altura) LbOdex.setBounds(10, 40, 60, 30); // Objeto da caixa de dialogo TfOdex = new JTextField(""); // ajustar posicao do elemento no JPanel: (coluna, linha, largura, altura) TfOdex.setBounds(80, 40, 370, 30); // Objeto do botao Consultar JButton consulta = new JButton("Consultar"); consulta.setBounds(480, 40, 120, 30); // Adiciona o listner ao Botao consulta.addActionListener(this); // Determina o comando que o listener recebe ao clicar no Botao consulta.setActionCommand("consultar"); // Objeto do botao Sair JButton sair = new JButton("Sair"); sair.setBounds(630, 40, 120, 30); sair.addActionListener(this); sair.setActionCommand("sair"); // FIM DO GRUPO DE OBJETOS DO CABECALHO // INICIO DO GRUPO DE OBJETOS DE ABAS // Cria o Objeto do conjunto de Abas JTabbedPane tabelaDePaineis = new JTabbedPane(JTabbedPane.TOP); tabelaDePaineis.setBounds(0, 100, 800, 500); // ABA 1 // Objeto da Aba 1 JPanel painel01 = new JPanel(null); // Objeto da Tabela tbData1 = new JTable(); tbData1.setBounds(5,5,685,360); tbData1.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); // Crio o objeto do Scroll e coloco a tabela dentro dele. JScrollPane sc = new JScrollPane(tbData1); sc.setBounds(5,5,780,430); // Indica que a scroll bar vertical e necessaria sc.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); // Indica que a scroll bar horizontal e necessaria sc.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); // Adiciona a Scroll (com a tabela dentro) no objeto da primeira aba. painel01.add(sc); // ABA 2 JPanel painel02 = new JPanel(null); tbData2 = new JTable(); tbData2.setBounds(5,5,685,360); tbData2.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); JScrollPane sc2 = new JScrollPane(tbData2); sc2.setBounds(5,5,780,430); sc2.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); sc2.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); painel02.add(sc2); // ABA 3 JPanel painel03 = new JPanel(null); tbData3 = new JTable(); tbData3.setBounds(5,5,685,360); tbData3.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); JScrollPane sc3 = new JScrollPane(tbData3); sc3.setBounds(5,5,780,430); sc3.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); sc3.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); painel03.add(sc3); // ABA 4 JPanel painel04 = new JPanel(null); tbData4 = new JTable(); tbData4.setBounds(5,5,685,360); tbData4.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); JScrollPane sc4 = new JScrollPane(tbData4); sc4.setBounds(5,5,780,430); sc4.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); sc4.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); painel04.add(sc4); // ABA 5 JPanel painel05 = new JPanel(null); tbData5 = new JTable(); tbData5.setBounds(5,5,685,360); tbData5.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); JScrollPane sc5 = new JScrollPane(tbData5); sc5.setBounds(5,5,780,430); sc5.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); sc5.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); painel05.add(sc5); // ABA 6 - LOG JPanel painel06 = new JPanel(null); area6.setBounds(5,5,685,360); JScrollPane sc6 = new JScrollPane(area6); sc6.setBounds(5,5,780,430); sc6.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); sc6.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); painel06.add(sc6); // adiciona as abas no objeto de