Imprimir apenas o que for selecionado na jTable, é possivel?

Fala galera, venho com uma dúvida, procurei bastante na internet, mas não achei nada concreto sobre o assunto.

Na imagem, tenho minha jTable com algumas informações inseridas, gostaria de saber se consigo um código para quando eu selecionar as linhas como na imagem e clicar na imagem da impressora, eu consiga fazer a impressão dessas informações. É possível?

Jeito que eu consigo fazer hoje, eu insiro essas informações e clico no botão adicionar, essas informações vão para o banco de dados e quando eu clico na impressora abre a tela de impressão(Estou usando o iReport pra isso), só que ai eu preciso ficar achando as informações e imprimindo uma por uma, então acaba não sendo prático.

Meu objetivo é selecionar as informações inseridas e conseguir fazer a impressão prática delas, sem fazer busca ou algo do tipo. Obrigado desde já.

Com esse código aqui consigo puxar a impressora quando eu clico no botão, porém não estou conseguindo fazer a impressão, não chega a informação na impressora, logo não sei se o código está funcionando:

String[] colunas = new String[]{“lista”, “dat”, “pep”, “listec”, “item”, “material”, “txtbre”, “qtde”, “um”, “rncrm”, “necob”, “natnf”, “local”, “pepaux”, “projeto”};

    String[][] dados = new String[15][15];
    int dados1 = 0;
    int dados2 = 0;
    dados = new String[dados1][dados2];

    DefaultTableModel dtm = new DefaultTableModel(dados, colunas);
    JTable tabela = new javax.swing.JTable(dtm);
    tabela.setAutoCreateRowSorter(true);
    tabela.setRowSelectionAllowed(true);
    tabela.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);

Ola. Mostra o trecho do código onde você tenta capturar as linhas selecionadas da tabela pra gente ver.

Obs. Você vai ter vários problemas com DefaultTableModel , é muito recomendado criar seu próprio modelo de tabela.

Esse é o código que uso para adicionar no BD.

private void adicionar() {

    String sql = "insert into tblgem(lista,dat,pep,listec,item,material,txtbre,qtde,um,rncrm,necob,natnf,local,pepaux,projeto) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
    try {
        pst = conexao.prepareStatement(sql);

        pst.setString(1, jTable1.getValueAt(jTable1.getSelectedRow(), 0).toString());
        pst.setString(2, jTable1.getValueAt(jTable1.getSelectedRow(), 1).toString());
        pst.setString(3, jTable1.getValueAt(jTable1.getSelectedRow(), 2).toString());
        pst.setString(4, jTable1.getValueAt(jTable1.getSelectedRow(), 3).toString());
        pst.setString(5, jTable1.getValueAt(jTable1.getSelectedRow(), 4).toString());
        pst.setString(6, jTable1.getValueAt(jTable1.getSelectedRow(), 5).toString());
        pst.setString(7, jTable1.getValueAt(jTable1.getSelectedRow(), 6).toString());
        pst.setString(8, jTable1.getValueAt(jTable1.getSelectedRow(), 7).toString());
        pst.setString(9, jTable1.getValueAt(jTable1.getSelectedRow(), 8).toString());
        pst.setString(10, jTable1.getValueAt(jTable1.getSelectedRow(), 9).toString());
        pst.setString(11, jTable1.getValueAt(jTable1.getSelectedRow(), 10).toString());
        pst.setString(12, jTable1.getValueAt(jTable1.getSelectedRow(), 11).toString());
        pst.setString(13, jTable1.getValueAt(jTable1.getSelectedRow(), 12).toString());
        pst.setString(14, jTable1.getValueAt(jTable1.getSelectedRow(), 13).toString());
        pst.setString(15, jTable1.getValueAt(jTable1.getSelectedRow(), 14).toString());

        int adicionado = pst.executeUpdate();

        if (adicionado > 0) {
            JOptionPane.showMessageDialog(null, "Requisições adicionadas com sucesso!");
        }

    } catch (Exception e) {
        JOptionPane.showMessageDialog(null, e);
    }
}

O código que eu citei acima, é o que foi mais próximo do que eu achei, como disse, estou sem idéias

Pra ficar mais claro só falta vc mostrar o cód que vc chama quando clica no botão impressora. É lá que a captura dos dados da tabela acontece.

Ah sim entendi, bom tem 2 códigos pq eu criei um botão novo e tentei colocar esse código acima nele. ele chega abrir a opção de impressão mas não faz contato com a impressora, logo não sei se está funcionando. Segue o código abaixo:
// método de impressao do que tiver selecionado

    String[] colunas = new String[]{"lista", "dat", "pep", "listec", "item", "material", "txtbre", "qtde", "um", "rncrm", "necob", "natnf", "local", "pepaux", "projeto"};

    String[][] dados = new String[15][15];
    int dados1 = 0;
    int dados2 = 0;
    dados = new String[dados1][dados2];

    DefaultTableModel dtm = new DefaultTableModel(dados, colunas);
    JTable tabela = new javax.swing.JTable(dtm);
    tabela.setAutoCreateRowSorter(true);
    tabela.setRowSelectionAllowed(true);
    tabela.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);

// instrução para imprimir a tabela
try {
tabela.print();
} catch (PrinterException ex) {
}
}

Agora esse código FUNCIONA, e é o da impressora, só que ele pega tudo que está dentro do banco de dados, e não só o que está na jTable que é o meu objetivo, segue:

// gerando impressão
int confirma = JOptionPane.showConfirmDialog(null, “Confirma a impressão?”, “Atenção”, JOptionPane.YES_NO_OPTION);
if (confirma == JOptionPane.YES_OPTION);
{
//imprimindo relatório
try {
// usando a classe JasperPrint para preparar a impressao de um relatório
JasperPrint print = JasperFillManager.fillReport(“C:/reports/report4.jasper”, null, conexao);
// a linha abaixo exibe o relatório através da classe JasperViewer
JasperViewer.viewReport(print, false);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}
}

Olá.
fiz um exemplo muuuito simples de como pegar os dados da tabela somente das linhas selecionadas. veja se te ajuda. coloque o codigo na sua ide e rode pra ver o funcionamento.

 import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

public class TableExample {
public static void main(String[] args) {
	// Use the event dispatch thread for Swing components
	EventQueue.invokeLater(new Runnable() {
		@Override
		public void run() {
			new TableExample().BuildGUI();
		}
	});
}

private JTable tabela;

public void BuildGUI() {
	JFrame f = new JFrame();
	f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	f.setTitle("Creating a Table Example");
	f.setSize(700, 860);
	f.setLocationRelativeTo(null);

	Object[][]			data			= { { 1, 1, 1 }, { 2, 2, 2 }, { 3, 3, 3 }, { 4, 4, 4 } };
	String[]			columnNames		= { "Column 1", "Column 2", "Column 3" };
	DefaultTableModel	defTableModel	= new DefaultTableModel(data, columnNames);
	tabela = new JTable(defTableModel);

	JScrollPane sp = new JScrollPane(tabela);
	sp.setBounds(10, 11, 684, 190);

	Object[] newData = { 1, 2, 3, 4 };
	defTableModel.addColumn("Column 4", newData);

	Object[] newRowData = { 5, 5, 5, 5 };
	defTableModel.addRow(newRowData);

	Object[] insertRowData = { 2.5, 2.5, 2.5, 2.5 };
	defTableModel.insertRow(2, insertRowData);

	defTableModel.setValueAt(8888, 3, 2);
	f.getContentPane().setLayout(null);
	f.getContentPane().add(sp);

	JButton btnNewButton = new JButton("BOTAO PARA CAPTURAR DADOS DA TABELA");
	btnNewButton.addActionListener(new ActionListener() {
		public void actionPerformed(ActionEvent arg0) {
			int[] linhasselecionadas= tabela.getSelectedRows();
			for (int i = 0; i < linhasselecionadas.length; i++) {
				System.out.println(linhasselecionadas[i]);
				Object teste = 
      tabela.getValueAt(linhasselecionadas[i], 1);
				System.out.println("Valor capturado:" + teste);
			}
		}
	});
	btnNewButton.setBounds(10, 239, 89, 23);
	f.getContentPane().add(btnNewButton);
	f.setVisible(true);
}
 }

Bom dia! Desculpe a demora pra responder.

Então, eu sou iniciante ainda, tem como você me explicar melhor como farei pra utilizar o código? Coloquei ele dentro de uma Classe Java, ta tudo certo com o código não apareceu nenhum erro. Mas agora pra eu chamar ele pro meu botão? Por exemplo, eu deveria ter colado ele no ActionPerformed? E outra não vi nada relacionado a impressão dentro desse código, eu vou conseguir mandar ele pra impressão sem setar meu Ireport por exemplo?

*Objetivo: Mandar para impressão só os itens que eu selecionar no JTable.

Olá.
No meu exemplo eu mostro como vc pode fazer pra pegar os dados na sua tabela. É apenas um exemplo do que vc poder fazer.
A tabela no Java é como se fosse uma planilha do Excel onde para que você consiga imprimir os dados de linhas específicas você tem que criar um laço percorrer sua tabela e pegar o índice das linhas selecionadas para somente então gerar a informação para a impressão.
Para ajudar melhor , preciso colocar seu projeto no eclipse pra entender melhor a necessidade e tentar sugerir ajustes. Se não houver problema pra você compartilhar todo o projeto poste todas as classes do projeto que ajusto nele e comento o fonte pra você entender.

Boa tarde!

Entendi, mas essas alterações vão dar certo no Netbeans? por que estou usando ele.

Postarei todas as classes, inclusive a que fiz com suas informações então, obrigado pela ajuda.

ExcelAdapter :

package br.com.gem.dal;

import java.awt.;
import java.awt.event.
;
import javax.swing.;
import java.awt.datatransfer.
;
import java.util.*;

/**

  • ExcelAdapter enables Copy-Paste Clipboard functionality on JTables. The
  • clipboard data format used by the adapter is compatible with the clipboard
  • format used by Excel. This provides for clipboard interoperability between
  • enabled JTables and Excel.
    */

/**
*

  • @author 212815039
    */
    public class ExcelAdapter implements ActionListener {

    private String rowstring, value;
    private Clipboard system;
    private StringSelection stsel;
    private JTable jTable1;

    /**

    • The Excel Adapter is constructed with a JTable on which it enables
    • Copy-Paste and acts as a Clipboard listener.
      */
      public ExcelAdapter(JTable myJTable) {
      jTable1 = myJTable;
      KeyStroke copy = KeyStroke.getKeyStroke(KeyEvent.VK_C, ActionEvent.CTRL_MASK, false);
      // Identifying the copy KeyStroke user can modify this
      // to copy on some other Key combination.
      KeyStroke paste = KeyStroke.getKeyStroke(KeyEvent.VK_V, ActionEvent.CTRL_MASK, false);
      // Identifying the Paste KeyStroke user can modify this
      //to copy on some other Key combination.
      jTable1.registerKeyboardAction(this, “Copy”, copy, JComponent.WHEN_FOCUSED);
      jTable1.registerKeyboardAction(this, “Paste”, paste, JComponent.WHEN_FOCUSED);
      system = Toolkit.getDefaultToolkit().getSystemClipboard();
      }

    /**

    • Public Accessor methods for the Table on which this adapter acts.
      */
      public JTable getJTable() {
      return jTable1;
      }

    public void setJTable(JTable jTable1) {
    this.jTable1 = jTable1;
    }

    /**

    • This method is activated on the Keystrokes we are listening to in this
    • implementation. Here it listens for Copy and Paste ActionCommands.
    • Selections comprising non-adjacent cells result in invalid selection and
    • then copy action cannot be performed. Paste is done by aligning the upper
    • left corner of the selection with the 1st element in the current
    • selection of the JTable.
      */
      public void actionPerformed(ActionEvent e) {
      if (e.getActionCommand().compareTo(“Copy”) == 0) {
      StringBuffer sbf = new StringBuffer();
      // Check to ensure we have selected only a contiguous block of
      // cells
      int numcols = jTable1.getSelectedColumnCount();
      int numrows = jTable1.getSelectedRowCount();
      int[] rowsselected = jTable1.getSelectedRows();
      int[] colsselected = jTable1.getSelectedColumns();
      if (!((numrows - 1 == rowsselected[rowsselected.length - 1] - rowsselected[0]
      && numrows == rowsselected.length)
      && (numcols - 1 == colsselected[colsselected.length - 1] - colsselected[0]
      && numcols == colsselected.length))) {
      JOptionPane.showMessageDialog(null, “Invalid Copy Selection”,
      “Invalid Copy Selection”,
      JOptionPane.ERROR_MESSAGE);
      return;
      }
      for (int i = 0; i < numrows; i++) {
      for (int j = 0; j < numcols; j++) {
      sbf.append(jTable1.getValueAt(rowsselected[i], colsselected[j]));
      if (j < numcols - 1) {
      sbf.append("\t");
      }
      }
      sbf.append("\n");
      }
      stsel = new StringSelection(sbf.toString());
      system = Toolkit.getDefaultToolkit().getSystemClipboard();
      system.setContents(stsel, stsel);
      }
      if (e.getActionCommand().compareTo(“Paste”) == 0) {
      System.out.println(“Trying to Paste”);
      int startRow = (jTable1.getSelectedRows())[0];
      int startCol = (jTable1.getSelectedColumns())[0];
      try {
      String trstring = (String) (system.getContents(this).getTransferData(DataFlavor.stringFlavor));
      System.out.println(“String is:” + trstring);
      StringTokenizer st1 = new StringTokenizer(trstring, “\n”);
      for (int i = 0; st1.hasMoreTokens(); i++) {
      rowstring = st1.nextToken();
      StringTokenizer st2 = new StringTokenizer(rowstring, “\t”);
      for (int j = 0; st2.hasMoreTokens(); j++) {
      value = (String) st2.nextToken();
      if (startRow + i < jTable1.getRowCount()
      && startCol + j < jTable1.getColumnCount()) {
      jTable1.setValueAt(value, startRow + i, startCol + j);
      }
      System.out.println("Putting " + value + “atrow=” + startRow + i + “column=” + startCol + j);
      }
      }
      } catch (Exception ex) {
      ex.printStackTrace();
      }
      }
      }
      }

Modulo Conexao:

package br.com.gem.dal;

import java.sql.*; //conector java
import javax.swing.JOptionPane;

/**
*

  • @author 212815039
    */
    public class ModuloConexao {

    //metodo responsavel por estabelecer a conexao com o banco
    public static Connection conector() { //connection é um conjunto de funcionalidade que vem do pacote sql importado acima. E conector é o nome do meu método.
    java.sql.Connection conexao = null; //usando novamente o pacote sql e o framework connection eu crio minha variavel conector.
    // a linha abaixo “chama” o driver
    String driver = “com.mysql.jdbc.Driver”;
    // armazenando informações referente ao banco
    String url = “jdbc:mysql://localhost:3306/gem”; //sempre sera esse caminho -SE AMANHA EU QUISER COLOCAR UM SERVIDOR DEDICADO EU ALTERO O NUMERO DO IP ONDE ESTA O LOCALHOST
    String user = “root”;
    String password = “”;
    // Estabelecendo a conexao com o banco
    try {
    Class.forName(driver); //classe do pacote sql
    conexao = DriverManager.getConnection(url, user, password); //essa é a sintaxe para voce ligar seu banco de dados ao java(camimho, usuario, senha).
    return conexao; //return foi necessario pq o método public static necessita de retorno
    } catch (Exception e) {
    // a linha abaixo serve de apoio para esclarecer o erro
    System.out.println(“e”);
    return null;
    }
    }
    }

SEU CÓDIGO TABLE EXEMPLE:

package br.com.gem.dal;

import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

/**
*

  • @author 212815039
    */
    public class TableExample {

    public static void main(String[] args) {
    // Use the event dispatch thread for Swing components
    EventQueue.invokeLater(new Runnable() {
    @Override
    public void run() {
    new TableExample().BuildGUI();
    }
    });
    }

    private JTable tabela;

    public void BuildGUI() {
    JFrame f = new JFrame();
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setTitle(“Creating a Table Example”);
    f.setSize(700, 860);
    f.setLocationRelativeTo(null);

     Object[][] data = {{1, 1, 1}, {2, 2, 2}, {3, 3, 3}, {4, 4, 4}};
     String[] columnNames = {"Column 1", "Column 2", "Column 3"};
     DefaultTableModel defTableModel = new DefaultTableModel(data, columnNames);
     tabela = new JTable(defTableModel);
    
     JScrollPane sp = new JScrollPane(tabela);
     sp.setBounds(10, 11, 684, 190);
    
     Object[] newData = {1, 2, 3, 4};
     defTableModel.addColumn("Column 4", newData);
    
     Object[] newRowData = {5, 5, 5, 5};
     defTableModel.addRow(newRowData);
    
     Object[] insertRowData = {2.5, 2.5, 2.5, 2.5};
     defTableModel.insertRow(2, insertRowData);
    
     defTableModel.setValueAt(8888, 3, 2);
     f.getContentPane().setLayout(null);
     f.getContentPane().add(sp);
    
     JButton btnNewButton  = new JButton("BOTAO PARA CAPTURAR DADOS DA TABELA");
     btnNewButton .addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent arg0) {
             int[] linhasselecionadas = tabela.getSelectedRows();
             for (int i = 0; i < linhasselecionadas.length; i++) {
                 System.out.println(linhasselecionadas[i]);
                 Object teste
                         = tabela.getValueAt(linhasselecionadas[i], 1);
                 System.out.println("Valor capturado:" + teste);
             }
         }
     });
     btnNewButton .setBounds(10, 239, 89, 23);
     f.getContentPane().add(btnNewButton );
     f.setVisible(true);
    

    }
    }

Tela de Login:

package br.com.gem.telas;

import java.sql.*;
import br.com.gem.dal.ModuloConexao;
import java.awt.Color;
import javax.swing.JOptionPane;

/**
*

  • @author 212815039
    */
    public class TelaLogin extends javax.swing.JFrame {

    Connection conexao = null; // Connection framework, conexao variavel
    PreparedStatement pst = null; //PreparedStatement framework, pst variavel/ variavel responsavel por preparar a consulta
    ResultSet rs = null; //ResultSet também é framework ele vai exibir o resultado das intruções sql dentro do java/ rs variavel.

    public void logar() {
    String sql = “select * from usersgem where login=? and senha=?”;
    //preparando comando para ser executado dentro do java e na sequencia executar(utilizando as variaveis(conexao,pst,rs)).
    try {
    //as linhas abaixo preparam a consulta ao banco em função do que foi digitado nas caixas de texto, o (?) é substituido pelo conteudo das variaveis
    pst = conexao.prepareStatement(sql);
    pst.setString(1, txtUsuario.getText());
    pst.setString(2, txtSenha.getText());
    // a linha abaixo executa a query
    rs = pst.executeQuery();
    // se existir usuário e senha correspondente(ESTRUTURA DE DECISAO).
    if (rs.next()) {
    // a linha abaixo obtém o conteúdo do campo perfil da tabela users
    String perfil = rs.getString(5);
    // System.out.println(perfil);
    // a linha abaixo exibe o conteúdo do campo da tabela e faz o tratamento de perfil do usuário
    if (perfil.equals(“admin”)) { //se na tabela perfil do banco for igual a admin seta na tela os campos abaixo que estão bloqueados.
    TelaPrincipal principal = new TelaPrincipal(); //estanciei a tela, dei significado.
    principal.setVisible(true);
    TelaPrincipal.menImp.setEnabled(true);
    TelaPrincipal.menReqReq.setEnabled(true);
    TelaPrincipal.lblUsuario.setText(rs.getString(2));
    TelaPrincipal.lblUsuario.setForeground(Color.red);
    this.dispose();//garante que a tela de login feche, ao chamar a tela principal.
    conexao.close();//fecha a conexao também
    } else {
    TelaPrincipal principal = new TelaPrincipal(); //estanciei a tela, dei significado.
    principal.setVisible(true);
    this.dispose();
    }
    } else {
    JOptionPane.showMessageDialog(null, “usuário e/ou senha inválido”);
    }
    } catch (Exception e) {
    JOptionPane.showMessageDialog(null, e);
    }
    }

    /**

    • Creates new form TelaLogin
      */
      public TelaLogin() {
      initComponents();
      //Aqui é minha inicialização, chamarei o método conector que criei para fazer a conexao com o banco de dados
      conexao = ModuloConexao.conector();
      System.out.println(conexao);
      //A linha abaixo é uma estrutura de decisao
      if (conexao != null) { //Se a conexao for diferente de null, aparece Conectado, SENAO apareça Não Conectado.
      lblStatus.setIcon(new javax.swing.ImageIcon(getClass().getResource("/br/com/gem/icones/dbok.png")));
      } else {
      lblStatus.setIcon(new javax.swing.ImageIcon(getClass().getResource("/br/com/gem/icones/dberror.png"))); // linhas de setagem de imagem(bem complexa por sinal).
      }
      }

    /**

    • This method is called from within the constructor to initialize the form.

    • WARNING: Do NOT modify this code. The content of this method is always

    • regenerated by the Form Editor.
      */
      @SuppressWarnings(“unchecked”)
      //
      private void initComponents() {

      jLabel1 = new javax.swing.JLabel();
      jLabel2 = new javax.swing.JLabel();
      txtUsuario = new javax.swing.JTextField();
      btnLogin = new javax.swing.JButton();
      txtSenha = new javax.swing.JPasswordField();
      lblStatus = new javax.swing.JLabel();

      setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
      setTitle(“GEM - Login”);
      setResizable(false);

      jLabel1.setText(“Usuário:”);

      jLabel2.setText(“Senha:”);

      btnLogin.setText(“Login”);
      btnLogin.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(java.awt.event.ActionEvent evt) {
      btnLoginActionPerformed(evt);
      }
      });

      txtSenha.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(java.awt.event.ActionEvent evt) {
      txtSenhaActionPerformed(evt);
      }
      });

      lblStatus.setIcon(new javax.swing.ImageIcon(getClass().getResource("/br/com/gem/icones/dberror.png"))); // NOI18N

      javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
      getContentPane().setLayout(layout);
      layout.setHorizontalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addGroup(layout.createSequentialGroup()
      .addGap(50, 50, 50)
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addComponent(jLabel1)
      .addComponent(jLabel2)
      .addComponent(lblStatus, javax.swing.GroupLayout.PREFERRED_SIZE, 41, javax.swing.GroupLayout.PREFERRED_SIZE))
      .addGap(34, 34, 34)
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addComponent(txtUsuario, javax.swing.GroupLayout.PREFERRED_SIZE, 206, javax.swing.GroupLayout.PREFERRED_SIZE)
      .addComponent(btnLogin, javax.swing.GroupLayout.Alignment.TRAILING)
      .addComponent(txtSenha, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 206, javax.swing.GroupLayout.PREFERRED_SIZE))
      .addContainerGap(71, Short.MAX_VALUE))
      );
      layout.setVerticalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addGroup(layout.createSequentialGroup()
      .addGap(43, 43, 43)
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
      .addComponent(jLabel1)
      .addComponent(txtUsuario, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
      .addGap(32, 32, 32)
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
      .addComponent(jLabel2)
      .addComponent(txtSenha, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addGroup(layout.createSequentialGroup()
      .addGap(27, 27, 27)
      .addComponent(btnLogin))
      .addGroup(layout.createSequentialGroup()
      .addGap(49, 49, 49)
      .addComponent(lblStatus, javax.swing.GroupLayout.PREFERRED_SIZE, 44, javax.swing.GroupLayout.PREFERRED_SIZE)))
      .addContainerGap(44, Short.MAX_VALUE))
      );

      setSize(new java.awt.Dimension(427, 303));
      setLocationRelativeTo(null);
      }//

    private void txtSenhaActionPerformed(java.awt.event.ActionEvent evt) {
    // TODO add your handling code here:
    }

    private void btnLoginActionPerformed(java.awt.event.ActionEvent evt) {
    // chamando método logar
    logar();
    }

    /**

    • @param args the command line arguments
      /
      public static void main(String args[]) {
      /
      Set the Nimbus look and feel /
      //
      /
      If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.

      • For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
        */
        try {
        for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
        if (“Nimbus”.equals(info.getName())) {
        javax.swing.UIManager.setLookAndFeel(info.getClassName());
        break;
        }
        }
        } catch (ClassNotFoundException ex) {
        java.util.logging.Logger.getLogger(TelaLogin.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
        java.util.logging.Logger.getLogger(TelaLogin.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
        java.util.logging.Logger.getLogger(TelaLogin.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
        java.util.logging.Logger.getLogger(TelaLogin.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //

      /* Create and display the form */
      java.awt.EventQueue.invokeLater(new Runnable() {
      public void run() {
      new TelaLogin().setVisible(true);
      }
      });
      }

Tela Principal :

package br.com.gem.telas;

import br.com.gem.dal.ModuloConexao;
import java.text.DateFormat;
import java.util.Date;
import javax.swing.JOptionPane;
import java.sql.*;

/**
*

  • @author 212815039
    /
    public class TelaPrincipal extends javax.swing.JFrame {
    Connection conexao = null;
    /
    *

    • Creates new form TelaPrincipal
      */
      public TelaPrincipal() {
      initComponents();
      conexao = ModuloConexao.conector();
      }

    /**

    • This method is called from within the constructor to initialize the form.

    • WARNING: Do NOT modify this code. The content of this method is always

    • regenerated by the Form Editor.
      */
      @SuppressWarnings(“unchecked”)
      //
      private void initComponents() {

      jDialog1 = new javax.swing.JDialog();
      jFrame1 = new javax.swing.JFrame();
      jMenu1 = new javax.swing.JMenu();
      jMenu2 = new javax.swing.JMenu();
      Desktop = new javax.swing.JDesktopPane();
      jLabel1 = new javax.swing.JLabel();
      lblUsuario = new javax.swing.JLabel();
      lblData = new javax.swing.JLabel();
      Menu = new javax.swing.JMenuBar();
      menReq = new javax.swing.JMenu();
      menReqReq = new javax.swing.JMenuItem();
      jMenuItem1 = new javax.swing.JMenuItem();
      menImp = new javax.swing.JMenu();
      jMenu5 = new javax.swing.JMenu();
      menOpc = new javax.swing.JMenu();
      jMenuItem2 = new javax.swing.JMenuItem();
      menOpcSai = new javax.swing.JMenuItem();

      javax.swing.GroupLayout jDialog1Layout = new javax.swing.GroupLayout(jDialog1.getContentPane());
      jDialog1.getContentPane().setLayout(jDialog1Layout);
      jDialog1Layout.setHorizontalGroup(
      jDialog1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addGap(0, 400, Short.MAX_VALUE)
      );
      jDialog1Layout.setVerticalGroup(
      jDialog1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addGap(0, 300, Short.MAX_VALUE)
      );

      javax.swing.GroupLayout jFrame1Layout = new javax.swing.GroupLayout(jFrame1.getContentPane());
      jFrame1.getContentPane().setLayout(jFrame1Layout);
      jFrame1Layout.setHorizontalGroup(
      jFrame1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addGap(0, 400, Short.MAX_VALUE)
      );
      jFrame1Layout.setVerticalGroup(
      jFrame1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addGap(0, 300, Short.MAX_VALUE)
      );

      jMenu1.setText(“jMenu1”);

      jMenu2.setText(“jMenu2”);

      setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
      setTitle(“Tela de Requisição - Impressão”);
      setResizable(false);
      addWindowListener(new java.awt.event.WindowAdapter() {
      public void windowActivated(java.awt.event.WindowEvent evt) {
      formWindowActivated(evt);
      }
      });

      javax.swing.GroupLayout DesktopLayout = new javax.swing.GroupLayout(Desktop);
      Desktop.setLayout(DesktopLayout);
      DesktopLayout.setHorizontalGroup(
      DesktopLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addGap(0, 1602, Short.MAX_VALUE)
      );
      DesktopLayout.setVerticalGroup(
      DesktopLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addGap(0, 0, Short.MAX_VALUE)
      );

      jLabel1.setIcon(new javax.swing.ImageIcon(“C:\Users\212815039\Desktop\Projeto JAVA+MYSQL\GE_TP.png”)); // NOI18N

      lblUsuario.setFont(new java.awt.Font(“Tahoma”, 1, 18)); // NOI18N
      lblUsuario.setText(“Usuário”);

      lblData.setFont(new java.awt.Font(“Tahoma”, 1, 18)); // NOI18N
      lblData.setText(“Data”);

      menReq.setText(“Requisição”);

      menReqReq.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_R, java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.CTRL_MASK));
      menReqReq.setText(“Requisitar”);
      menReqReq.setEnabled(false);
      menReqReq.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(java.awt.event.ActionEvent evt) {
      menReqReqActionPerformed(evt);
      }
      });
      menReq.add(menReqReq);

      jMenuItem1.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_T, java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.CTRL_MASK));
      jMenuItem1.setText(“AdicionarEmitir”);
      jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(java.awt.event.ActionEvent evt) {
      jMenuItem1ActionPerformed(evt);
      }
      });
      menReq.add(jMenuItem1);

      Menu.add(menReq);

      menImp.setText(“Impressão”);
      menImp.setEnabled(false);
      Menu.add(menImp);

      jMenu5.setText(“Ajuda”);
      Menu.add(jMenu5);

      menOpc.setText(“Opções”);
      menOpc.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(java.awt.event.ActionEvent evt) {
      menOpcActionPerformed(evt);
      }
      });

      jMenuItem2.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F10, java.awt.event.InputEvent.ALT_MASK));
      jMenuItem2.setText(“Sobre”);
      jMenuItem2.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(java.awt.event.ActionEvent evt) {
      jMenuItem2ActionPerformed(evt);
      }
      });
      menOpc.add(jMenuItem2);

      menOpcSai.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F4, java.awt.event.InputEvent.ALT_MASK));
      menOpcSai.setText(“Sair”);
      menOpcSai.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(java.awt.event.ActionEvent evt) {
      menOpcSaiActionPerformed(evt);
      }
      });
      menOpc.add(menOpcSai);

      Menu.add(menOpc);

      setJMenuBar(Menu);

      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()
      .addComponent(Desktop, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addGroup(layout.createSequentialGroup()
      .addGap(40, 40, 40)
      .addComponent(jLabel1))
      .addGroup(layout.createSequentialGroup()
      .addGap(110, 110, 110)
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addComponent(lblUsuario)
      .addComponent(lblData))))
      .addContainerGap(1991, Short.MAX_VALUE))
      );
      layout.setVerticalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addGroup(layout.createSequentialGroup()
      .addGap(60, 60, 60)
      .addComponent(lblUsuario)
      .addGap(289, 289, 289)
      .addComponent(lblData)
      .addGap(130, 130, 130)
      .addComponent(jLabel1)
      .addContainerGap(41, Short.MAX_VALUE))
      .addGroup(layout.createSequentialGroup()
      .addContainerGap()
      .addComponent(Desktop)
      .addContainerGap())
      );

      setSize(new java.awt.Dimension(2009, 887));
      setLocationRelativeTo(null);
      }//

    private void menOpcSaiActionPerformed(java.awt.event.ActionEvent evt) {
    // exibe uma caixa de dialogo
    int sair = JOptionPane.showConfirmDialog(null, “Tem certeza que deseja sair?”,“Atenção”,JOptionPane.YES_NO_OPTION); // Crio uma variavel int de nome sair e coloco dentro dela um JOptionPane de pergunta SIM ou NÃO.
    if (sair == JOptionPane.YES_OPTION){ //Se caso eu escolha por sim, fechar o sistema.
    System.exit(0); //fecha o sistema
    }
    }

    private void formWindowActivated(java.awt.event.WindowEvent evt) {
    // as linhas abaixo substituem a label data lblData, pela data autal do sistema ao inicializar o form
    Date data = new Date();
    DateFormat formatador = DateFormat.getDateInstance(DateFormat.SHORT); //escolhe o formato que vai aparecer a data
    lblData.setText(formatador.format(data)); //faz com que, quando rode o programa ele rode com a data do sistema
    }

    private void menReqReqActionPerformed(java.awt.event.ActionEvent evt) {
    // Chamando a tela de requisição
    Tela_Requisicao requisitar = new Tela_Requisicao();
    requisitar.setVisible(true);
    Desktop.add(requisitar);
    }

    private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {
    // Chamando a tela de adicionar
    Tela_Adicionar_Imprimir adicionar = new Tela_Adicionar_Imprimir();
    adicionar.setVisible(true);
    Desktop.add(adicionar);

    }

    private void menOpcActionPerformed(java.awt.event.ActionEvent evt) {

    }

    private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {
    // // Chamanda Tela Sobre
    Tela_Sobre sobre = new Tela_Sobre();
    sobre.setVisible(true);
    }

    /**

    • @param args the command line arguments
      /
      public static void main(String args[]) {
      /
      Set the Nimbus look and feel /
      //
      /
      If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.

      • For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
        */
        try {
        for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
        if (“Nimbus”.equals(info.getName())) {
        javax.swing.UIManager.setLookAndFeel(info.getClassName());
        break;
        }
        }
        } catch (ClassNotFoundException ex) {
        java.util.logging.Logger.getLogger(TelaPrincipal.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
        java.util.logging.Logger.getLogger(TelaPrincipal.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
        java.util.logging.Logger.getLogger(TelaPrincipal.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
        java.util.logging.Logger.getLogger(TelaPrincipal.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //

      /* Create and display the form */
      java.awt.EventQueue.invokeLater(new Runnable() {
      public void run() {
      new TelaPrincipal().setVisible(true);
      }
      });
      }

Tela Adicionar_Imprimir

ackage br.com.gem.telas;

import br.com.gem.dal.ExcelAdapter;
import br.com.gem.dal.ModuloConexao;
import java.awt.print.PrinterException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.table.DefaultTableModel;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;

/**
*

  • @author 212815039
    */
    class Tela_Adicionar_Imprimir extends javax.swing.JInternalFrame {

    Connection conexao = null;
    PreparedStatement pst = null;
    ResultSet rs = null;

    /**

    • Creates new form Tela_Adicionar_Imprimir
      */
      public Tela_Adicionar_Imprimir() {
      initComponents();
      conexao = ModuloConexao.conector();
      ExcelAdapter myAd = new ExcelAdapter(jTable1);
      }

//Chamando Tela Pesquisar PEP
private void pesquisar() {
String sql = " Select * from tblgem where pepaux=? order by lista desc";
try {
pst = conexao.prepareStatement(sql);
pst.setString(1, txtPepPesq.getText());
rs = pst.executeQuery();
if (rs.next()) {
txtNumList.setText(rs.getString(1));
} else {
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}

private void adicionar() {

    String sql = "insert into tblgem(lista,dat,pep,listec,item,material,txtbre,qtde,um,rncrm,necob,natnf,local,pepaux,projeto) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
    try {
        pst = conexao.prepareStatement(sql);

        pst.setString(1, jTable1.getValueAt(jTable1.getSelectedRow(), 0).toString());
        pst.setString(2, jTable1.getValueAt(jTable1.getSelectedRow(), 1).toString());
        pst.setString(3, jTable1.getValueAt(jTable1.getSelectedRow(), 2).toString());
        pst.setString(4, jTable1.getValueAt(jTable1.getSelectedRow(), 3).toString());
        pst.setString(5, jTable1.getValueAt(jTable1.getSelectedRow(), 4).toString());
        pst.setString(6, jTable1.getValueAt(jTable1.getSelectedRow(), 5).toString());
        pst.setString(7, jTable1.getValueAt(jTable1.getSelectedRow(), 6).toString());
        pst.setString(8, jTable1.getValueAt(jTable1.getSelectedRow(), 7).toString());
        pst.setString(9, jTable1.getValueAt(jTable1.getSelectedRow(), 8).toString());
        pst.setString(10, jTable1.getValueAt(jTable1.getSelectedRow(), 9).toString());
        pst.setString(11, jTable1.getValueAt(jTable1.getSelectedRow(), 10).toString());
        pst.setString(12, jTable1.getValueAt(jTable1.getSelectedRow(), 11).toString());
        pst.setString(13, jTable1.getValueAt(jTable1.getSelectedRow(), 12).toString());
        pst.setString(14, jTable1.getValueAt(jTable1.getSelectedRow(), 13).toString());
        pst.setString(15, jTable1.getValueAt(jTable1.getSelectedRow(), 14).toString());

        int adicionado = pst.executeUpdate();

        if (adicionado > 0) {
            JOptionPane.showMessageDialog(null, "Requisições adicionadas com sucesso!");
        }

    } catch (Exception e) {
        JOptionPane.showMessageDialog(null, e);
    }
}
        private void imprimir(){
        try {
        jTable1.print(javax.swing.JTable.PrintMode.FIT_WIDTH,
                new java.text.MessageFormat("Logistica Movimentação de Materiais"), // titulo da pagina
                new java.text.MessageFormat("Page {0}"));
    } catch (PrinterException e) {
        JOptionPane.showMessageDialog(this, "Erro ao tentar imprimir!\n"
                + e.getMessage());
    }
        }


/**
 * This method is called from within the constructor to initialize the form.
 * WARNING: Do NOT modify this code. The content of this method is always
 * regenerated by the Form Editor.
 */
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">                          
private void initComponents() {

    jScrollPane1 = new javax.swing.JScrollPane();
    jTable1 = new javax.swing.JTable();
    jButton1 = new javax.swing.JButton();
    jButton2 = new javax.swing.JButton();
    txtPepPesq = new javax.swing.JTextField();
    jLabel1 = new javax.swing.JLabel();
    txtNumList = new javax.swing.JTextField();
    jLabel2 = new javax.swing.JLabel();
    jButton3 = new javax.swing.JButton();
    jButton4 = new javax.swing.JButton();

    setClosable(true);
    setIconifiable(true);
    setMaximizable(true);
    setResizable(true);
    setTitle("Adicionar/Impressão");

    jTable1.setModel(new javax.swing.table.DefaultTableModel(
        new Object [][] {
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null},
            {null, null, null, null, null, null, null, null, null, null, null, null, null, null, null}
        },
        new String [] {
            "lista", "dat", "pep", "listec", "item", "material", "txtbre", "qtde", "um", "rncrm", "necob", "natnf", "local", "pepaux", "projeto"
        }
    ) {
        Class[] types = new Class [] {
            java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class
        };

        public Class getColumnClass(int columnIndex) {
            return types [columnIndex];
        }
    });
    jTable1.getTableHeader().setReorderingAllowed(false);
    jScrollPane1.setViewportView(jTable1);

    jButton1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/br/com/gem/icones/create.png"))); // NOI18N
    jButton1.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
    jButton1.setPreferredSize(new java.awt.Dimension(80, 80));
    jButton1.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButton1ActionPerformed(evt);
        }
    });

    jButton2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/br/com/gem/icones/print.png"))); // NOI18N
    jButton2.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
    jButton2.setPreferredSize(new java.awt.Dimension(80, 80));
    jButton2.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButton2ActionPerformed(evt);
        }
    });

    jLabel1.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
    jLabel1.setText("Lista:");

    txtNumList.setEditable(false);

    jLabel2.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
    jLabel2.setText("PEP");

    jButton3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/br/com/gem/icones/pesquisar.png"))); // NOI18N
    jButton3.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
    jButton3.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButton3ActionPerformed(evt);
        }
    });

    jButton4.setText("jButton4");
    jButton4.setPreferredSize(new java.awt.Dimension(80, 80));
    jButton4.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButton4ActionPerformed(evt);
        }
    });

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(layout.createSequentialGroup()
            .addGap(31, 31, 31)
            .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 1180, javax.swing.GroupLayout.PREFERRED_SIZE)
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                    .addGap(44, 44, 44)
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addComponent(txtPepPesq, javax.swing.GroupLayout.PREFERRED_SIZE, 152, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(jLabel2)))
                .addGroup(layout.createSequentialGroup()
                    .addGap(78, 78, 78)
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                        .addComponent(jButton3)
                        .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))
            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 37, Short.MAX_VALUE)
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addComponent(jLabel1)
                        .addComponent(txtNumList, javax.swing.GroupLayout.PREFERRED_SIZE, 126, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGap(124, 124, 124))
                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                    .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGap(42, 42, 42)
                    .addComponent(jButton4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGap(59, 59, 59))))
    );
    layout.setVerticalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(layout.createSequentialGroup()
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                    .addGap(25, 25, 25)
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 440, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGroup(layout.createSequentialGroup()
                    .addGap(106, 106, 106)
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                        .addGroup(layout.createSequentialGroup()
                            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(jButton4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(jLabel1)
                            .addGap(30, 30, 30)
                            .addComponent(txtNumList, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGroup(layout.createSequentialGroup()
                            .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGap(55, 55, 55)
                            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 17, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(jButton3))
                            .addGap(30, 30, 30)
                            .addComponent(txtPepPesq, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))))
            .addContainerGap(46, Short.MAX_VALUE))
    );

    pack();
}// </editor-fold>                        

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    // chamando metodo pesquisar
    pesquisar();
}                                        

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    // gerando impressão
    int confirma = JOptionPane.showConfirmDialog(null, "Confirma a impressão?", "Atenção", JOptionPane.YES_NO_OPTION);
    if (confirma == JOptionPane.YES_OPTION);
    {
        //imprimindo relatório 
        try {
            // usando a classe JasperPrint para preparar a impressao de um relatório
            JasperPrint print = JasperFillManager.fillReport("C:/reports/report4.jasper", null, conexao);
            // a linha abaixo exibe o relatório através da classe JasperViewer
            JasperViewer.viewReport(print, false);
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e);
        }
    }
}                                        

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    // chamaando metodo adicionar
    adicionar();

}                                        

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {                                         
               
    // TODO add your handling code here:
    try {
        jTable1.print(javax.swing.JTable.PrintMode.FIT_WIDTH,
                new java.text.MessageFormat("Agenda de Contatos"), // titulo da pagina
                new java.text.MessageFormat("Page {0}"));
    } catch (PrinterException e) {
        JOptionPane.showMessageDialog(this, "Erro ao tentar imprimir!\n"
                + e.getMessage());
    }

Tela de Requisição e Sobre não vou postar pois creio que não precisa, elas estão acertadas já. Segue uma imagem ilustrativa da composição para que você consiga se encontrar nas informações.

image

Olá Igor.
Nao consegui encontrar o main do seu programa.
Onde voce inicia as telas?

Bom dia! Eu inicio o Login, e assim que eu logo, já chama a tela principal pra mim onde eu faço as aplicações. Mas o main está na tela principal.