Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: JOptionPane

  1. #1

    JOptionPane

    COSA INSERISCO NEL CAMPO IF (CONDIZIONE) ?

    Vorrei cambiare una parte di codice del programma realizzato sostituendo nella condizione if (condizione) che l'utente non ha inserito nessun valore , quindi se la condizione e verificata compare una finestra di dialogo : Non hai inserito nessun valore.


    codice:
    // if (quantità ) {
    
                JOptionPane.showMessageDialog(null,"Non hai inserito nessun valore ");
                System.exit(0);
                }
    
    
    // for
    import java.lang.*;
    import javax.swing.*;
    
    public class For {
    
        public static void main (String args[]) {
    
            JTextArea AreaTesto = new JTextArea(3,15);
            JScrollPane Scroll = new JScrollPane(AreaTesto);
            String studenti;
            Integer quantità;
            AreaTesto.setText("N° studenti\tNome\n");
            quantità = Integer.parseInt(JOptionPane.showInputDialog("Da quanti studenti è composta la classe ?"));
            if (quantità <=0) {
    
                JOptionPane.showMessageDialog(null,"Devi inserire da quanti studenti è formata la classe");
                System.exit(0);
                }
    
                for (int variabiledicontrollo = 1; variabiledicontrollo<=quantità; variabiledicontrollo++){
            studenti = JOptionPane.showInputDialog("Nome dello studente");
            AreaTesto.append(variabiledicontrollo+"\t"+studenti+"\n");
            if (studenti.equals("")) {
    
                JOptionPane.showMessageDialog(null,"Devi inserire il nome" + studenti,"Studenti",JOptionPane.INFORMATION_MESSAGE);
                }
    
                } // fine ciclo for
                JOptionPane.showMessageDialog(null,AreaTesto,"Studenti",JOptionPane.INFORMATION_MESSAGE);
            } // fine del metodo main
        } // fine della classe
    Ultima modifica di LeleFT; 22-07-2014 a 10:16 Motivo: Aggiunti i tag CODE

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    a parte che un carattere accentato nel codice non va mai mai mai mai mai mai messo.
    Poi puoi usare i tag code per il codice (almeno pure noi lo vediamo formattato).

    Se hai bisogno di un programma che interagisce con l'utente (chiedendo informazioni) usare le JOptionPane non è la soluzione elegante, meglio usare un campo di testo che ti abilita il resto della GUI una volta inserito il valore corretto.
    Quel ciclo va bene quando fai usi la CLI (command line interface), con le GUI no.
    Esci dal programma se non metti il valore corretto, ma
    1. non sai se ha messo un intero o un valore fasullo (quindi ti va in NumberFormatException)
    2. esci, quando in realtà dovresti forzare l'utente a darti il valore

    I cicli for si fanno partire da 0 (fai conto che se usi array il primo è proprio nella posizione 0) e si fermano a variabiledicontrollo<quantita. Non è errato partire da 1, ma disgraziatamente hai un array vai in eccezione e visto che spesso su questo si va per abitudine, non prendere brutte abitudini.

    poi non ho capito il senso della richiesta...o meglio, nel momento in cui non metti nessun studente devi dire "attento, non mi hai dato studenti"

    Impara ad usare bene le API swing, avviare il motore java per delle finestre di dialogo è davvero davvero brutto
    RTFM Read That F*** Manual!!!

  3. #3

    JOptioPane

    Il programma scritto è solo per una questione di studio . Cercherò di essere più preciso in quello che vorrei chiedere agli utenti del forum .
    Nel mio programma alla comparsa della finestra di dialogo (Da quanti studenti è composta la classe ?) clicchiamo su ok il programma visualizzerà un altra finestra con scritto (Devi inserire da quanti studenti è formata la classe) , tutto questo controllato dalla condizione if (quantità.equals("")) . Volevo cambiare il parametro o metodo equals con un altro se esiste , perchè equals funziona solo esclusivamente per i valori di tipo String e non per i valori int float double ecc.
    Vorrei che questo funzionasse anche quando clicco su annulla sempre alla comparsa dellafinestra di dialogo (Da quanti studenti è composta la classe ?)

    Vi invio il mio programma riscritto :


    codice:
    // For , JOptionPane , JScrollPane
    import javax.swing.*; // importa le classi JOptionPane , JScrollPane ecc del package javax.swing.*;
    
    public class ForJTextAreaJScrollPane { // dichiarazione della classe
    
        public static void main (String args[]) { // inizio del metodo main
    
            JTextArea AreaTesto = new JTextArea(3,15); // crea una JTextArea con 3 righe e 15 colonne
            JScrollPane Scroll = new JScrollPane(AreaTesto); // attacca una JScrollPane alla JTextArea
    
            String studenti; // dichiara una variabile di tipo String
            String quantità;
            int nquantità = 0; // dichira una variabile di tipo int
    
            AreaTesto.setText("N° studenti\tNome\n"); // creiamo la prima riga della JTextArea
    
            quantità = (JOptionPane.showInputDialog("Da quanti studenti è composta la classe ?")); // visualizza una finestra di input
    
            if (quantità.equals("")) { // condizione equals
    
                JOptionPane.showMessageDialog(null,"Devi inserire da quanti studenti è formata la classe");/* visualizza una finestra di input
                con un messaggio se non hai inserito nessun valore*/
    
                System.exit(0);
    
                }
    
                else
    
                {
    
                    nquantità = Integer.parseInt(quantità); // converte una variabile di tipo Sting in int ed nseriamo in nquantità il numero degli studenti per effettuare il ciclo
    
                    }
    
                for (int variabiledicontrollo = 1; variabiledicontrollo <= nquantità; variabiledicontrollo++){ // inizio ciclo for
    
            studenti = JOptionPane.showInputDialog("Nome dello studente"); // visualizza una finestra di input
    
            AreaTesto.append(variabiledicontrollo+"\t"+studenti+"\n"); // inserimento dei valori inseriti da input
    
            if (studenti.equals("")) { // condizione
    
                JOptionPane.showMessageDialog(null,"Devi inserire il nome" + studenti,"Studenti",JOptionPane.INFORMATION_MESSAGE); /* Inserisci
                il nome dello studente*/
                }
    
                } // fine ciclo for
                JOptionPane.showMessageDialog(null,AreaTesto,"Studenti",JOptionPane.INFORMATION_MESSAGE); /* visualizza il risultato finale in
                una JTextArea con un uno JScrollPane*/
    
            } // fine del metodo main
    
        } // fine della classe
    Ultima modifica di LeleFT; 23-07-2014 a 12:50 Motivo: Aggiunti i tag CODE

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    di nuovo, i tag code...la prima volta te li ha aggiunti il moderatore.

    Non mi hai capita: stai facendo confusione tra le conoscenze di base (tipi, costrutti di selezione/ciclo) e quello che dovrebbe fare un programma (interfacciandosi con l'utente).

    Indipendentemente dal fatto che usi le JOptionPane in quel modo, il punto è che da questa frase

    Volevo cambiare il parametro o metodo equals con un altro se esiste , perchè equals funziona solo esclusivamente per i valori di tipo String e non per i valori int float double ecc.


    si deduce che non hai chiara la differenza tra tipi primitivi e oggetti in generale (int è un tipo primitivo, String è un oggetto complesso).
    I primi si confrontano con == ( o != a seconda dei casi), gli altri con equals. Ma, Integer (che incapsula un intero) è un oggetto e il confronto è sempre meglio farlo o prendendo i valori primitivi oppure passando per equals.
    Detto questo, lascia perdere le GUI e le optionpane, prendi un buon libro di testo e migliora le tue conoscenze di base.
    Il resto verrà più semplice
    RTFM Read That F*** Manual!!!

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    @giuseppeforum
    Quando posti del codice, inseriscilo all'interno degli appositi tag [CODE] ... [/CODE], così da preservarne formattazione ed indentazione.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  6. #6
    Ho già un buon libro di testo

  7. #7
    Il libro che uso che è Java usa nei primi capitoli usa propio le JOptionPane che faccio lo butto

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    Di libri ne ho visti tanti, è il primo che usa swing al posto di una semplice System.out.println e di acquisizione input tramite Scanner.

    ti ripeto non hai chiare le nozioni base (che prescindono l'uso di interfacce grafiche), a sto punto mi leggerei il PDF di de sio, non spendi altri soldi, ma quanto meno spiega decentemente il concetto di tipo primitivo/oggetto e gli esempi non hanno dentro roba che confonde

  9. #9
    Non ho bisogno delle nozioni base per usare dei comandi da prompt di dos .
    Conosco la variabili di tipo primitivo che sono boolean char byte short in long ecc , String non risulta avevi ragione
    Non hai visto abbastanza libri di java allora perchè questo libro usa uno delle classi del package javax.swind.*; JTextArea Applet JOptionPane ecc

  10. #10
    Java Fondamenti di Programmazione un buon libro che vi consiglio

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 © 2025 vBulletin Solutions, Inc. All rights reserved.