diff --git a/src/guiconvertibasi/GUIConvertiBasi.form b/src/guiconvertibasi/GUIConvertiBasi.form index 86b45a1..09c6c90 100644 --- a/src/guiconvertibasi/GUIConvertiBasi.form +++ b/src/guiconvertibasi/GUIConvertiBasi.form @@ -26,12 +26,12 @@ - + - + @@ -49,9 +49,9 @@ - + - + @@ -74,6 +74,9 @@ + + + @@ -83,12 +86,12 @@ - + - + diff --git a/src/guiconvertibasi/GUIConvertiBasi.java b/src/guiconvertibasi/GUIConvertiBasi.java index d839954..940e6c4 100644 --- a/src/guiconvertibasi/GUIConvertiBasi.java +++ b/src/guiconvertibasi/GUIConvertiBasi.java @@ -1,14 +1,16 @@ + +import javax.swing.JOptionPane; + /* * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license * Click nbfs://nbhost/SystemFileSystem/Templates/GUIForms/JFrame.java to edit this template */ - /** * * @author Verde */ public class GUIConvertiBasi extends javax.swing.JFrame { - + private static final java.util.logging.Logger logger = java.util.logging.Logger.getLogger(GUIConvertiBasi.class.getName()); /** @@ -30,8 +32,8 @@ public class GUIConvertiBasi extends javax.swing.JFrame { lblNumeroDaConvertire = new javax.swing.JLabel(); cmbBaseDestinataria = new javax.swing.JComboBox<>(); lblBaseDestinataria = new javax.swing.JLabel(); - txtNumeroConvertito = new javax.swing.JLabel(); - txtNueroConvertito = new javax.swing.JTextField(); + lblNumeroConvertito = new javax.swing.JLabel(); + txtNumeroConvertito = new javax.swing.JTextField(); txtNumeroDaConvertire = new javax.swing.JTextField(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); @@ -39,12 +41,13 @@ public class GUIConvertiBasi extends javax.swing.JFrame { lblNumeroDaConvertire.setText("Numero da convertire"); cmbBaseDestinataria.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Binaria", "Ottale", "Esadecimale", "Vigesimale" })); + cmbBaseDestinataria.addItemListener(this::cmbBaseDestinatariaItemStateChanged); lblBaseDestinataria.setText("Base destinataria"); - txtNumeroConvertito.setText("Numero convertito"); + lblNumeroConvertito.setText("Numero convertito"); - txtNueroConvertito.setEditable(false); + txtNumeroConvertito.setEditable(false); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); @@ -53,12 +56,12 @@ public class GUIConvertiBasi extends javax.swing.JFrame { .addGroup(layout.createSequentialGroup() .addGap(32, 32, 32) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addComponent(txtNumeroConvertito) + .addComponent(lblNumeroConvertito) .addComponent(lblBaseDestinataria) .addComponent(lblNumeroDaConvertire, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(txtNumeroDaConvertire) .addComponent(cmbBaseDestinataria, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(txtNueroConvertito)) + .addComponent(txtNumeroConvertito)) .addContainerGap(24, Short.MAX_VALUE)) ); layout.setVerticalGroup( @@ -73,15 +76,57 @@ public class GUIConvertiBasi extends javax.swing.JFrame { .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(cmbBaseDestinataria, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18) - .addComponent(txtNumeroConvertito, javax.swing.GroupLayout.PREFERRED_SIZE, 41, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(lblNumeroConvertito, javax.swing.GroupLayout.PREFERRED_SIZE, 41, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(txtNueroConvertito, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(txtNumeroConvertito, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(39, Short.MAX_VALUE)) ); pack(); }// //GEN-END:initComponents + private void cmbBaseDestinatariaItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_cmbBaseDestinatariaItemStateChanged + // TODO add your handling code here: + + String testo = txtNumeroDaConvertire.getText().trim(); + int numero = 0; + String scelta; + String risultato = null; + + if (testo.isEmpty()) { + JOptionPane.showMessageDialog(null, "Inserire un numero."); + txtNumeroDaConvertire.setText(""); + return; + } + + try { + numero = Integer.parseInt(testo); + } catch (NumberFormatException _) { + JOptionPane.showMessageDialog(null, "Inserire un numero valido."); + txtNumeroDaConvertire.setText(""); + return; + } + + scelta = cmbBaseDestinataria.getSelectedItem().toString(); + + switch (scelta) { + case "Binaria": + risultato = Integer.toBinaryString(numero); + break; + case "Ottale": + risultato = Integer.toOctalString(numero); + break; + case "Esadecimale": + risultato = Integer.toHexString(numero).toUpperCase(); + break; + case "Vigesimale": + risultato = Integer.toString(numero, 20).toUpperCase(); + break; + } + + txtNumeroConvertito.setText(risultato); + }//GEN-LAST:event_cmbBaseDestinatariaItemStateChanged + /** * @param args the command line arguments */ @@ -110,9 +155,9 @@ public class GUIConvertiBasi extends javax.swing.JFrame { // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JComboBox cmbBaseDestinataria; private javax.swing.JLabel lblBaseDestinataria; + private javax.swing.JLabel lblNumeroConvertito; private javax.swing.JLabel lblNumeroDaConvertire; - private javax.swing.JTextField txtNueroConvertito; - private javax.swing.JLabel txtNumeroConvertito; + private javax.swing.JTextField txtNumeroConvertito; private javax.swing.JTextField txtNumeroDaConvertire; // End of variables declaration//GEN-END:variables }