elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Evitar duplicados en Jtable
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Evitar duplicados en Jtable  (Leído 3,795 veces)
Lesterfbt

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Evitar duplicados en Jtable
« en: 22 Marzo 2019, 04:01 am »

Buenas noches,

Necesito ayuda con mi proyecto en Java lo tengo prácticamente finalizado pero esto es lo único que me tiene estancado,

Quiero evitar duplicados de la columna código de cliente de un Jtable, al darle clic al botón "Guardar", evalué si no hay código con ese valor lo guarde en la tabla si ya existe este código muestre la excepción que "Código del cliente ya existe" y no guarde.

Les agradecería su ayuda,

Saludos.


En línea

rub'n


Desconectado Desconectado

Mensajes: 1.217


(e -> λ("live now")); tatuar -> λ("α");


Ver Perfil WWW
Re: Evitar duplicados en Jtable
« Respuesta #1 en: 25 Marzo 2019, 00:16 am »

Buenas noches,

Necesito ayuda con mi proyecto en Java lo tengo prácticamente finalizado pero esto es lo único que me tiene estancado,

Quiero evitar duplicados de la columna código de cliente de un Jtable, al darle clic al botón "Guardar", evalué si no hay código con ese valor lo guarde en la tabla si ya existe este código muestre la excepción que "Código del cliente ya existe" y no guarde.

Les agradecería su ayuda,

Saludos.

Si se puede pero muestra algo de código a ver como la tienes?...

 >:D

Código
  1. package foro;
  2.  
  3. import javax.swing.*;
  4. import javax.swing.border.TitledBorder;
  5. import javax.swing.table.DefaultTableModel;
  6. import java.awt.*;
  7. import java.util.ArrayList;
  8. import java.util.List;
  9.  
  10. /**
  11.  * @Autor rub´n y google
  12.  */
  13. public class JTableAvoidDuplicados extends JFrame {
  14.  
  15.    private final DefaultTableModel defaultTableModel = new DefaultTableModel();
  16.    private final JTable table = new JTable(defaultTableModel);
  17.    private final JScrollPane jScrollPane = new JScrollPane(table);
  18.    private final JButton button = new JButton("Aceptar");
  19.    private final JTextField textField = new JTextField();
  20.  
  21.    public JTableAvoidDuplicados() {
  22.        init();
  23.  
  24.        setSize(500, 100);
  25.        pack();
  26.        setLocationRelativeTo(null);
  27.        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  28.        setVisible(true);
  29.    }
  30.  
  31.    private void init() {
  32.        final JComponent panelNorte = getPanelNorte();
  33.        final JComponent panelSur = getPanelSur();
  34.        panelNorte.add(panelSur, BorderLayout.SOUTH);
  35.        add(panelNorte);
  36.    }
  37.  
  38.    private JComponent getPanelNorte() {
  39.        final JPanel panel = new JPanel();
  40.        panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
  41.        final TitledBorder titledBorder = new TitledBorder("PoC duplicados en JTable");
  42.        titledBorder.setTitleFont(new Font(Font.SANS_SERIF,Font.BOLD,16));
  43.        panel.setBorder(titledBorder);
  44.        panel.add(jScrollPane, BorderLayout.NORTH);
  45.        /**
  46.          * Filas de la table
  47.          */
  48.        defaultTableModel.addColumn("Codigo");
  49.        defaultTableModel.addRow(new Object[]{"codigo-0000"});
  50.        defaultTableModel.addRow(new Object[]{"codigo-0001"});
  51.        defaultTableModel.addRow(new Object[]{"codigo-0002"});
  52.        defaultTableModel.addRow(new Object[]{"codigo-0003"});
  53.  
  54.        return panel;
  55.    }
  56.  
  57.    private JComponent getPanelSur() {
  58.        final JPanel panelSur = new JPanel();
  59.        panelSur.setLayout(new BoxLayout(panelSur,BoxLayout.X_AXIS));
  60.        panelSur.setBorder(BorderFactory.createEmptyBorder(10, 0, 5, 0));
  61.        panelSur.add(new JLabel("Introduce codigo: "));
  62.        panelSur.add(Box.createHorizontalStrut(10));
  63.        panelSur.add(textField);
  64.        panelSur.add(Box.createHorizontalStrut(10));
  65.        panelSur.add(button);
  66.        initBehaviour();
  67.        return panelSur;
  68.    }
  69.  
  70.    private void initBehaviour() {
  71.        button.addActionListener(e -> tabla(table, textField));
  72.    }
  73.  
  74.    private void tabla(JTable tabla, JTextField jTextField) {
  75.        String s = "";
  76.        boolean exists = false;
  77.        for (int i = 0; i < tabla.getRowCount(); i++) {
  78.            s = tabla.getValueAt(i, 0).toString().trim();
  79.  
  80.            if (jTextField.getText().equals("")) {
  81.                JOptionPane.showMessageDialog(null, "Introduce un valor");
  82.                break;
  83.            } else if (jTextField.getText().equals(s)) {
  84.                exists = true;
  85.                break;
  86.  
  87.            }
  88.        }
  89.        if (!exists) {
  90.            final DefaultTableModel dd = (DefaultTableModel) tabla.getModel();
  91.            final List<String> lista = new ArrayList<>();
  92.            final String codigo = jTextField.getText();
  93.            if (!codigo.equals("")) {
  94.                lista.add(jTextField.getText());
  95.                dd.addRow(lista.toArray());
  96.            }
  97.        } else {
  98.            JOptionPane.showMessageDialog(null, "Codigo existente.");
  99.        }
  100.    }
  101.  
  102.    public static void main(String... gaga) {
  103.        try {
  104.            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
  105.        } catch (Exception ex) {
  106.            ex.printStackTrace();
  107.        }
  108.        new Thread(JTableAvoidDuplicados::new).start();
  109.    }
  110.  
  111. }
  112.  



« Última modificación: 4 Abril 2019, 23:05 pm por rub'n » En línea

rubn0x52.com KNOWLEDGE  SHOULD BE FREE.
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen king
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines