diff --git a/src/main/java/xyz/danielcortes/controllers/LaunchController.java b/src/main/java/xyz/danielcortes/controllers/LaunchController.java index dfd1c1c..d2711ad 100644 --- a/src/main/java/xyz/danielcortes/controllers/LaunchController.java +++ b/src/main/java/xyz/danielcortes/controllers/LaunchController.java @@ -8,6 +8,7 @@ import javax.swing.JMenuItem; import javax.swing.JPanel; import xyz.danielcortes.controllers.arrendar.ArrendarArrendarController; import xyz.danielcortes.controllers.arrendar.ArrendarSearchController; +import xyz.danielcortes.controllers.arrendar.ArrendarViewRecibidoController; import xyz.danielcortes.controllers.autor.AutorCreateController; import xyz.danielcortes.controllers.autor.AutorSearchController; import xyz.danielcortes.controllers.autor.AutorUpdateController; @@ -99,6 +100,7 @@ import xyz.danielcortes.models.Usuario; import xyz.danielcortes.views.LaunchFrame; import xyz.danielcortes.views.arrendar.ArrendarArrendarPanel; import xyz.danielcortes.views.arrendar.ArrendarSearchPanel; +import xyz.danielcortes.views.arrendar.ArrendarViewPanel; import xyz.danielcortes.views.autor.AutorCreatePanel; import xyz.danielcortes.views.autor.AutorSearchPanel; import xyz.danielcortes.views.autor.AutorUpdatePanel; @@ -322,6 +324,7 @@ public class LaunchController { this.controllers.put(PanelName.ARRENDAR_SEARCH, new ArrendarSearchController(new ArrendarSearchPanel(), this)); this.controllers.put(PanelName.ARRENDAR_ARRENDAR, new ArrendarArrendarController(new ArrendarArrendarPanel(), this)); + this.controllers.put(PanelName.ARRENDAR_VIEW, new ArrendarViewRecibidoController(new ArrendarViewPanel(), this)); for (Entry entry : this.controllers.entrySet()) { this.frame.addCard(entry.getValue().getView().getContentPane(), entry.getKey()); diff --git a/src/main/java/xyz/danielcortes/controllers/arrendar/ArrendarSearchController.java b/src/main/java/xyz/danielcortes/controllers/arrendar/ArrendarSearchController.java index ef36ade..e8bdc4a 100644 --- a/src/main/java/xyz/danielcortes/controllers/arrendar/ArrendarSearchController.java +++ b/src/main/java/xyz/danielcortes/controllers/arrendar/ArrendarSearchController.java @@ -44,9 +44,10 @@ public class ArrendarSearchController extends BaseController { Arriendo arriendo = this.getSelectedArriendo(); if (arriendo == null) return; -// AutorViewController controller = (AutorViewController) this.getParentController().getCard(PanelName.AUTOR_VIEW); -// controller.setAutor(autor); -// this.getParentController().showCard(PanelName.AUTOR_VIEW); + + ArrendarViewRecibidoController controller = (ArrendarViewRecibidoController) this.getParentController().getCard(PanelName.ARRENDAR_VIEW); + controller.setArriendo(arriendo); + this.getParentController().showCard(PanelName.ARRENDAR_VIEW); } private void recibir() { @@ -59,6 +60,12 @@ public class ArrendarSearchController extends BaseController { ArriendoRecibidoDialog dialog = new ArriendoRecibidoDialog(multaDiaria, Math.max(0, diasAtrasado)); //Me vi en la necesidad de usar max, lo siento dialog.execute(); + + if (dialog.isAcepted()) { + arriendo.setFechaDevolucionReal(LocalDate.now()); + this.arrendarRepository.update(arriendo); + this.view.getArriendosTableModel().fireTableDataChanged(); + } } private void loadArriendosTable(List arriendos) { diff --git a/src/main/java/xyz/danielcortes/controllers/arrendar/ArrendarViewRecibidoController.java b/src/main/java/xyz/danielcortes/controllers/arrendar/ArrendarViewRecibidoController.java new file mode 100644 index 0000000..bc4513a --- /dev/null +++ b/src/main/java/xyz/danielcortes/controllers/arrendar/ArrendarViewRecibidoController.java @@ -0,0 +1,56 @@ +package xyz.danielcortes.controllers.arrendar; + +import java.time.Period; +import xyz.danielcortes.controllers.LaunchController; +import xyz.danielcortes.framework.BaseController; +import xyz.danielcortes.framework.BasePanel; +import xyz.danielcortes.framework.PanelName; +import xyz.danielcortes.models.Arriendo; +import xyz.danielcortes.views.arrendar.ArrendarViewPanel; + +public class ArrendarViewRecibidoController extends BaseController { + + public ArrendarViewPanel view; + public Arriendo arriendo; + + + public ArrendarViewRecibidoController(ArrendarViewPanel view, LaunchController parentController) { + super(parentController); + this.view = view; + this.setupListeners(); + } + + private void setupListeners() { + this.view.getVolverButton().addActionListener(e -> this.parentController.showCard(PanelName.ARRENDAR_VIEW)); + } + + public void setArriendo(Arriendo arriendo) { + this.arriendo = arriendo; + } + + @Override + public void show() { + if (this.arriendo != null && this.arriendo.getFechaDevolucionReal() != null) { + int costoBase = this.arriendo.getCostoArriendo(); + int diasAtrasado = Math.max(0, Period.between(this.arriendo.getFechaDevolucionEstimada(), this.arriendo.getFechaDevolucionReal()).getDays()); + int multaDiaria = this.arriendo.getMultaDiaria(); + int costoTotal = costoBase + multaDiaria * diasAtrasado; + + this.view.getClientesField().setText(this.arriendo.getCliente().getRut()); + this.view.getVendedorField().setText(this.arriendo.getTrabajador().getRut()); + this.view.getEjemplaresTableModel().setRows(this.arriendo.getEjemplares()); + this.view.getFechaEntregaEstipuladaField().setText(this.arriendo.getFechaDevolucionEstimada().toString()); + this.view.getFechaEntregaRealField().setText(this.arriendo.getFechaDevolucionReal().toString()); + this.view.getCostoBaseField().setText(String.valueOf(costoBase)); + this.view.getMultaDiariaField().setText(String.valueOf(multaDiaria)); + this.view.getDiasAtrasadosField().setText(String.valueOf(diasAtrasado)); + this.view.getCostoTotalField().setText(String.valueOf(costoTotal)); + } + } + + @Override + public BasePanel getView() { + return this.view; + } + +} diff --git a/src/main/java/xyz/danielcortes/framework/PanelName.java b/src/main/java/xyz/danielcortes/framework/PanelName.java index f828362..d4951f9 100644 --- a/src/main/java/xyz/danielcortes/framework/PanelName.java +++ b/src/main/java/xyz/danielcortes/framework/PanelName.java @@ -110,5 +110,5 @@ public enum PanelName { ARRENDAR_SEARCH, ARRENDAR_ARRENDAR, - ARRENDAR_RECIBIR, + ARRENDAR_VIEW } diff --git a/src/main/java/xyz/danielcortes/views/arrendar/ArrendarViewPanel.form b/src/main/java/xyz/danielcortes/views/arrendar/ArrendarViewPanel.form new file mode 100644 index 0000000..ec83e6a --- /dev/null +++ b/src/main/java/xyz/danielcortes/views/arrendar/ArrendarViewPanel.form @@ -0,0 +1,215 @@ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/src/main/java/xyz/danielcortes/views/arrendar/ArrendarViewPanel.java b/src/main/java/xyz/danielcortes/views/arrendar/ArrendarViewPanel.java new file mode 100644 index 0000000..965c222 --- /dev/null +++ b/src/main/java/xyz/danielcortes/views/arrendar/ArrendarViewPanel.java @@ -0,0 +1,231 @@ +package xyz.danielcortes.views.arrendar; + +import com.intellij.uiDesigner.core.GridConstraints; +import com.intellij.uiDesigner.core.GridLayoutManager; +import com.intellij.uiDesigner.core.Spacer; +import java.awt.Dimension; +import java.awt.Insets; +import javax.swing.JButton; +import javax.swing.JComponent; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTable; +import javax.swing.JTextField; +import xyz.danielcortes.framework.BasePanel; +import xyz.danielcortes.framework.BaseTableModel; +import xyz.danielcortes.models.Ejemplar; + +public class ArrendarViewPanel extends BasePanel { + + private JPanel contentPane; + private JTable ejemplaresTable; + private BaseTableModel ejemplaresTableModel; + private JTextField clientesField; + private JTextField costoBaseField; + private JTextField multaDiariaField; + private JTextField fechaEntregaEstipuladaField; + private JTextField fechaEntregaRealField; + private JTextField costoTotalField; + private JTextField diasAtrasadosField; + private JTextField vendedorField; + private JButton volverButton; + + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } + + @Override + public JPanel getContentPane() { + return this.contentPane; + } + + public JTable getEjemplaresTable() { + return this.ejemplaresTable; + } + + public BaseTableModel getEjemplaresTableModel() { + return this.ejemplaresTableModel; + } + + public JTextField getClientesField() { + return this.clientesField; + } + + public JTextField getCostoBaseField() { + return this.costoBaseField; + } + + public JTextField getMultaDiariaField() { + return this.multaDiariaField; + } + + public JTextField getFechaEntregaEstipuladaField() { + return this.fechaEntregaEstipuladaField; + } + + public JTextField getFechaEntregaRealField() { + return this.fechaEntregaRealField; + } + + public JTextField getCostoTotalField() { + return this.costoTotalField; + } + + public JTextField getDiasAtrasadosField() { + return this.diasAtrasadosField; + } + + public JTextField getVendedorField() { + return this.vendedorField; + } + + public JButton getVolverButton() { + return this.volverButton; + } + + /** + * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! + * + * @noinspection ALL + */ + private void $$$setupUI$$$() { + createUIComponents(); + contentPane = new JPanel(); + contentPane.setLayout(new GridLayoutManager(20, 3, new Insets(20, 20, 20, 20), -1, -1)); + final JLabel label1 = new JLabel(); + label1.setText("Cliente:"); + contentPane.add(label1, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, + GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); + clientesField = new JTextField(); + clientesField.setEditable(false); + contentPane.add(clientesField, + new GridConstraints(1, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, + GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(400, -1), null, 0, false)); + final JScrollPane scrollPane1 = new JScrollPane(); + contentPane.add(scrollPane1, new GridConstraints(5, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, + GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, + GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, null, new Dimension(400, -1), null, 0, false)); + scrollPane1.setViewportView(ejemplaresTable); + final JLabel label2 = new JLabel(); + label2.setText("Ejemplares:"); + contentPane.add(label2, new GridConstraints(4, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, + GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); + costoBaseField = new JTextField(); + costoBaseField.setEditable(false); + contentPane.add(costoBaseField, + new GridConstraints(7, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, + GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(400, -1), null, 0, false)); + final JLabel label3 = new JLabel(); + label3.setText("Costo Base:"); + contentPane.add(label3, new GridConstraints(6, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, + GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); + multaDiariaField = new JTextField(); + multaDiariaField.setEditable(false); + contentPane.add(multaDiariaField, + new GridConstraints(9, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, + GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(400, -1), null, 0, false)); + final JLabel label4 = new JLabel(); + label4.setText("Multa Diaria"); + contentPane.add(label4, new GridConstraints(8, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, + GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); + final JLabel label5 = new JLabel(); + label5.setText("Fecha Entrega Estipulada:"); + contentPane.add(label5, new GridConstraints(10, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, + GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); + fechaEntregaEstipuladaField = new JTextField(); + fechaEntregaEstipuladaField.setEditable(false); + contentPane.add(fechaEntregaEstipuladaField, + new GridConstraints(11, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, + GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(400, -1), null, 0, false)); + final JPanel panel1 = new JPanel(); + panel1.setLayout(new GridLayoutManager(1, 1, new Insets(0, 0, 0, 0), -1, -1)); + contentPane.add(panel1, new GridConstraints(18, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, + GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, + GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null, null, 0, false)); + volverButton = new JButton(); + volverButton.setText("Volver"); + panel1.add(volverButton, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_NONE, + GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), + null, 0, false)); + final Spacer spacer1 = new Spacer(); + contentPane.add(spacer1, + new GridConstraints(19, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_VERTICAL, 1, GridConstraints.SIZEPOLICY_WANT_GROW, null, + null, null, 0, false)); + final Spacer spacer2 = new Spacer(); + contentPane.add(spacer2, + new GridConstraints(19, 2, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, 1, + null, null, null, 0, false)); + final Spacer spacer3 = new Spacer(); + contentPane.add(spacer3, + new GridConstraints(19, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, 1, + null, null, null, 0, false)); + final JLabel label6 = new JLabel(); + label6.setText("Fecha Entrega Real:"); + contentPane.add(label6, new GridConstraints(12, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, + GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); + fechaEntregaRealField = new JTextField(); + fechaEntregaRealField.setEditable(false); + contentPane.add(fechaEntregaRealField, + new GridConstraints(13, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, + GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false)); + final JLabel label7 = new JLabel(); + label7.setText("Costo Total:"); + contentPane.add(label7, new GridConstraints(16, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, + GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); + costoTotalField = new JTextField(); + costoTotalField.setEditable(false); + contentPane.add(costoTotalField, + new GridConstraints(17, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, + GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false)); + final JLabel label8 = new JLabel(); + label8.setText("Dias Atrasado:"); + contentPane.add(label8, new GridConstraints(14, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, + GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); + diasAtrasadosField = new JTextField(); + diasAtrasadosField.setEditable(false); + contentPane.add(diasAtrasadosField, + new GridConstraints(15, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, + GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false)); + final JLabel label9 = new JLabel(); + label9.setText("Vendedor:"); + contentPane.add(label9, new GridConstraints(2, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, + GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); + vendedorField = new JTextField(); + vendedorField.setEditable(false); + contentPane.add(vendedorField, + new GridConstraints(3, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, + GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false)); + } + + private void createUIComponents() { + this.ejemplaresTableModel = new BaseTableModel<>( + new String[]{"ISBN", "Serie", "Titulo", "Precio"}, + (row, rowIndex, colIndex) -> { + switch (colIndex) { + case 0: + return row.get(rowIndex).getLibro().getIsbn(); + case 1: + return row.get(rowIndex).getSerie(); + case 2: + return row.get(rowIndex).getLibro().getTitulo(); + case 3: + return row.get(rowIndex).getLibro().getPrecioReferencia(); + default: + return null; + } + } + ); + this.ejemplaresTable = new JTable(this.ejemplaresTableModel); + } + + /** + * @noinspection ALL + */ + public JComponent $$$getRootComponent$$$() { + return contentPane; + } +} diff --git a/src/main/java/xyz/danielcortes/views/arrendar/ArriendoRecibidoDialog.form b/src/main/java/xyz/danielcortes/views/arrendar/ArriendoRecibidoDialog.form index d82ad0e..0e4cb70 100644 --- a/src/main/java/xyz/danielcortes/views/arrendar/ArriendoRecibidoDialog.form +++ b/src/main/java/xyz/danielcortes/views/arrendar/ArriendoRecibidoDialog.form @@ -21,7 +21,7 @@ - + @@ -37,6 +37,14 @@ + + + + + + + + diff --git a/src/main/java/xyz/danielcortes/views/arrendar/ArriendoRecibidoDialog.java b/src/main/java/xyz/danielcortes/views/arrendar/ArriendoRecibidoDialog.java index 2849302..979473e 100644 --- a/src/main/java/xyz/danielcortes/views/arrendar/ArriendoRecibidoDialog.java +++ b/src/main/java/xyz/danielcortes/views/arrendar/ArriendoRecibidoDialog.java @@ -23,10 +23,13 @@ public class ArriendoRecibidoDialog extends JDialog { private JTextField multaTotalField; private JTextField diasAtrasadosField; private JTextField multaDiariaField; + private JButton cancelButton; private int multaDiaria; private int diasAtrasados; + private boolean acepted; + { // GUI initializer generated by IntelliJ IDEA GUI Designer // >>> IMPORTANT!! <<< @@ -41,17 +44,27 @@ public class ArriendoRecibidoDialog extends JDialog { this.setContentPane(this.contentPane); this.setModal(true); this.setLocationRelativeTo(null); - this.getRootPane().setDefaultButton(this.buttonOK); - this.buttonOK.addActionListener(e -> this.dispose()); this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); + this.getRootPane().setDefaultButton(this.buttonOK); + + this.buttonOK.addActionListener(e -> { + this.acepted = true; + this.dispose(); + }); + this.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { + ArriendoRecibidoDialog.this.acepted = false; ArriendoRecibidoDialog.this.dispose(); } }); + this.contentPane.registerKeyboardAction( - e -> this.dispose(), + e -> { + this.acepted = false; + this.dispose(); + }, KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT ); @@ -70,6 +83,10 @@ public class ArriendoRecibidoDialog extends JDialog { this.setVisible(true); } + public boolean isAcepted() { + return this.acepted; + } + /** * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! * @@ -87,7 +104,7 @@ public class ArriendoRecibidoDialog extends JDialog { new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, 1, null, null, null, 0, false)); final JPanel panel2 = new JPanel(); - panel2.setLayout(new GridLayoutManager(1, 1, new Insets(0, 0, 0, 0), -1, -1)); + panel2.setLayout(new GridLayoutManager(1, 2, new Insets(0, 0, 0, 0), -1, -1)); panel1.add(panel2, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null, null, 0, false)); @@ -95,6 +112,10 @@ public class ArriendoRecibidoDialog extends JDialog { buttonOK.setText("OK"); panel2.add(buttonOK, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); + cancelButton = new JButton(); + cancelButton.setText("Cancel"); + panel2.add(cancelButton, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, + GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); final JPanel panel3 = new JPanel(); panel3.setLayout(new GridLayoutManager(3, 2, new Insets(0, 0, 0, 0), -1, -1)); contentPane.add(panel3, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, @@ -135,4 +156,5 @@ public class ArriendoRecibidoDialog extends JDialog { public JComponent $$$getRootComponent$$$() { return contentPane; } + }