Visualizzazione dei risultati da 1 a 6 su 6

Discussione: [JAVA] uso delle swing

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    103

    [JAVA] uso delle swing

    Salve ragazzi, sono ancora una volta qui a chiedere a chi ne sa più di me...

    Vorrei sapere qual'è il codice per ottenere un input dall'utente, usarlo per richiamare dei metodi e stampare poi il relativo risultato il tutto usando solo interfacce grafiche.

    Io ho già a disposizione il codice senza l'utilizzo delle interfacce grafiche e perciò vorrei adattarlo.

    Grazie.

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    103

    precisazione..

    volevo precisare con l'utilizzo dei frame,pannelli e JText...perchè quella con la JOptionPane è banale...

  3. #3
    Devi lavorare sui JTextField...JTextArea... o simili... sugli eventi che si possono scaturire su di essi ... sui JButton ... ecc... L'argomento è alquanto vasto.

    Ti posto qui un semplice esempio che consente di eseguire le quattro operazioni sui 2 valori inseriti dall'utente in due JTextField. Non lasciarti impressionare dalla lunghezza del codice. E' più semplice di quanto possa immaginare... la lunghezza è dovuta più che altro alle impostazioni grafiche di visualizzazione:

    codice:
    public class EsempioJFrame extends javax.swing.JFrame {
        
        public EsempioJFrame() {
            initComponents();
        }
        
                           
        private void initComponents() {
            jLabel1 = new javax.swing.JLabel();
            textFieldValore1 = new javax.swing.JTextField();
            jLabel2 = new javax.swing.JLabel();
            textFieldValore2 = new javax.swing.JTextField();
            jLabel3 = new javax.swing.JLabel();
            risultato = new javax.swing.JTextField();
            buttonSomma = new javax.swing.JButton();
            buttonDividi = new javax.swing.JButton();
            buttonMoltiplica = new javax.swing.JButton();
            buttonSottrai = new javax.swing.JButton();
    
            getContentPane().setLayout(null);
    
            setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
            setResizable(false);
            jLabel1.setText("valore 1");
            getContentPane().add(jLabel1);
            jLabel1.setBounds(10, 10, 50, 14);
    
            getContentPane().add(textFieldValore1);
            textFieldValore1.setBounds(90, 10, 90, 19);
    
            jLabel2.setText("valore 2");
            getContentPane().add(jLabel2);
            jLabel2.setBounds(10, 40, 60, 14);
    
            getContentPane().add(textFieldValore2);
            textFieldValore2.setBounds(90, 40, 90, 19);
    
            jLabel3.setText("Risultato");
            getContentPane().add(jLabel3);
            jLabel3.setBounds(10, 90, 50, 14);
    
            getContentPane().add(risultato);
            risultato.setBounds(90, 90, 80, 19);
    
            buttonSomma.setText("Somma");
            buttonSomma.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                    buttonSommaActionPerformed(evt);
                }
            });
    
            getContentPane().add(buttonSomma);
            buttonSomma.setBounds(210, 10, 110, 23);
    
            buttonDividi.setText("Dividi");
            buttonDividi.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                    buttonDividiActionPerformed(evt);
                }
            });
    
            getContentPane().add(buttonDividi);
            buttonDividi.setBounds(210, 100, 110, 23);
    
            buttonMoltiplica.setText("Moltiplica");
            buttonMoltiplica.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                    buttonMoltiplicaActionPerformed(evt);
                }
            });
    
            getContentPane().add(buttonMoltiplica);
            buttonMoltiplica.setBounds(210, 70, 110, 23);
    
            buttonSottrai.setText("Sottrai");
            buttonSottrai.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                    buttonSottraiActionPerformed(evt);
                }
            });
    
            getContentPane().add(buttonSottrai);
            buttonSottrai.setBounds(210, 40, 110, 23);
    
            java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
            setBounds((screenSize.width-358)/2, (screenSize.height-165)/2, 358, 165);
        }                        
    
        private void buttonDividiActionPerformed(java.awt.event.ActionEvent evt) {                                             
            int valore1 = textFieldValore1.getText().equals("") ? 0 : Integer.parseInt(textFieldValore1.getText());
            int valore2 = textFieldValore2.getText().equals("") ? 0 : Integer.parseInt(textFieldValore2.getText());
            if(valore2!=0)
                risultato.setText(String.valueOf(valore1/valore2));
            else
                risultato.setText("Non poss.");
        }                                            
    
        private void buttonMoltiplicaActionPerformed(java.awt.event.ActionEvent evt) {                                                 
            int valore1 = textFieldValore1.getText().equals("") ? 0 : Integer.parseInt(textFieldValore1.getText());
            int valore2 = textFieldValore2.getText().equals("") ? 0 : Integer.parseInt(textFieldValore2.getText());
            
            risultato.setText(String.valueOf(valore1*valore2));
        }                                                
    
        private void buttonSottraiActionPerformed(java.awt.event.ActionEvent evt) {                                              
            int valore1 = textFieldValore1.getText().equals("") ? 0 : Integer.parseInt(textFieldValore1.getText());
            int valore2 = textFieldValore2.getText().equals("") ? 0 : Integer.parseInt(textFieldValore2.getText());
            
            risultato.setText(String.valueOf(valore1-valore2));
        }                                             
    
        private void buttonSommaActionPerformed(java.awt.event.ActionEvent evt) {                                            
            int valore1 = textFieldValore1.getText().equals("") ? 0 : Integer.parseInt(textFieldValore1.getText());
            int valore2 = textFieldValore2.getText().equals("") ? 0 : Integer.parseInt(textFieldValore2.getText());
            
            risultato.setText(String.valueOf(valore1+valore2));
        }                                           
        
        public static void main(String args[]) {
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new EsempioJFrame().setVisible(true);
                }
            });
        }
        
                     
        private javax.swing.JButton buttonDividi;
        private javax.swing.JButton buttonMoltiplica;
        private javax.swing.JButton buttonSomma;
        private javax.swing.JButton buttonSottrai;
        private javax.swing.JLabel jLabel1;
        private javax.swing.JLabel jLabel2;
        private javax.swing.JLabel jLabel3;
        private javax.swing.JTextField risultato;
        private javax.swing.JTextField textFieldValore1;
        private javax.swing.JTextField textFieldValore2;
                   
        
    }
    Al mio segnale... scatenate l'inferno!

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    103
    Io qualcosa del genere l'ho scritta, ma siccome nel mio codice devo gestire delle eccezioni, ma come inserisco il throws IOException e i blocchi try catch mi si imballa tutto

    puoi scrivermi le eventuali eccezioni dove andrebbero inserite?

  5. #5
    Nel mio esempio andrebbero gestite nelle actionperformed dei bottoni. Ad esempio per la divisione:

    codice:
    private void buttonDividiActionPerformed(java.awt.event.ActionEvent evt) {                                             
            int valore1 = textFieldValore1.getText().equals("") ? 0 : Integer.parseInt(textFieldValore1.getText());
            int valore2 = textFieldValore2.getText().equals("") ? 0 : Integer.parseInt(textFieldValore2.getText());
            try{
                risultato.setText(String.valueOf(valore1/valore2));
            }catch(Exception ex){
                if(ex instanceof java.lang.ArithmeticException){
                    JOptionPane.showMessageDialog(this,"Impossibile dividere per zero.","Errore",JOptionPane.ERROR_MESSAGE);
                }else{
    JOptionPane.showMessageDialog(this,"ERRORE: "+ex.getMessage(),"Errore",JOptionPane.ERROR_MESSAGE);
    
                }
            }
                
        }
    Al mio segnale... scatenate l'inferno!

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    103

    ho risolto..

    Ti ringrazio dell'attenzione, ma il mio problema era troppo specifico e io nn ti ho dato gli elementi sufficienti per aiutarmi correttamente.

    Cmq la soluzione che ho adottato è stata di gestire le eccezioni nel main che richiama il frame.

    Spero sia utile a qlc!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.