Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di Wave
    Registrato dal
    May 2003
    Messaggi
    644

    [JAVA] problemino JLabel

    codice:
    private void VirgolaMouseClicked(java.awt.event.MouseEvent evt) {
            
            if (premuto = false && operatore == 0){
                input1 = input1 + ".";
                schermo.setText(input1);
                premuto = true;
                return;
            }
            else  if (premuto = false && operatore != 0){
                input2 = input2 + ".";
                schermo.setText(input2);
                premuto = true;
                return;

    questo è un metodo che dovrebbe permettermi in una calcolatrice di aggiungere il punto a significare la virgola di un numero decimale...

    la variabile booleana premuto è inizializzzata a false e indica se il tasto è stato premuto o meno...

    operatore invece indica se è stato premuto un pulsante che corrisponde ad un operazione (+ - * / ) [ quando è 0 vuol dire che non ne è stato premuto nessuno ] in modo da aggiornare input1 nel primo caso e input2 nel secondo caso (che corrispondono al primo e al secondo membro dell'operazione....

    il fatto è che la compilazione non mi genera nessun errore ma in esecuzione il tasto è come se non ci fosse...se lo premo non succede niente e tutto continua come se non lo avessi premuto...neanche errori nel promt....non vorrei che il punto non possa apparire in una JLabel (è così che faccio vedere le cose premute sulla calcolatrice) ma se così fosse mi dovrebbero apparire degli errori che invece non appaiono.....

    non so che fare...non ho indizi da cui iniziare a cercare una soluzione...



    e poi un altro problemino...ho lanciato questi metodi sulla JLabel schermo:

    codice:
    schermo.setBackground(new java.awt.Color(255, 255, 255));
            schermo.setText("    ");
            schermo.setBorder(new javax.swing.border.EtchedBorder());
            schermo.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT);
    che dovrebbero farmi lo sfondo di essa bianco....e scrivere il testo a partire da destra....ma così non è...come mai????
    LINUX
    Powered by Ubuntu
    Powered by MacOS X


    ...vivi la tua vita come se ogni giorno fosse l'ultimo, poichè un giorno lo sarà...

  2. #2
    Utente di HTML.it L'avatar di Wave
    Registrato dal
    May 2003
    Messaggi
    644
    niente quella cavolo di virgola proprio non vuole apparire....
    LINUX
    Powered by Ubuntu
    Powered by MacOS X


    ...vivi la tua vita come se ogni giorno fosse l'ultimo, poichè un giorno lo sarà...

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    A parte il fatto che le due istruzioni return all'interno del metodo VirgolaMouseClicked sono perfettamente inutili e, oltretutto, semanticamente errate (un metodo void per definizione non ritorna nulla), non capisco come entri nel metodo. Hai associato un ActionListener nel pulsante con la virgola? Lo richiami da lì?

    Per il secondo problema, se vuoi lo sfondo bianco, devi impostare anche un'altra proprietà delle JLabel (che non è ben documentata). Basta che aggiungi questa riga:
    codice:
    schermo.setOpaque(true);

    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

  4. #4
    Utente di HTML.it L'avatar di Wave
    Registrato dal
    May 2003
    Messaggi
    644
    per lo sfondo...grazie adesso lo provo.....

    per quanto riguarda il primo problemino...il return lo so che è inutile ma dato che non funzionava ho provato a metterlo.....così...


    ho aggiunto questo per il pulsante con la virgola...

    codice:
    Virgola.setText(".");
            Virgola.addMouseListener(new java.awt.event.MouseAdapter() {
                public void mouseClicked(java.awt.event.MouseEvent evt) {
                    VirgolaMouseClicked(evt);
                }
            });
    
            Tastiera.add(Virgola);
    dovrebbe essere giusto.....
    LINUX
    Powered by Ubuntu
    Powered by MacOS X


    ...vivi la tua vita come se ogni giorno fosse l'ultimo, poichè un giorno lo sarà...

  5. #5
    Utente di HTML.it L'avatar di Wave
    Registrato dal
    May 2003
    Messaggi
    644
    ah...e per quanto riguarda il testo che voglio appaia a destra????anche qui c è un opzione da attivare oltre a schermo.setHorizontalTextPosition(javax.swing.Swin gConstants.RIGHT);????
    LINUX
    Powered by Ubuntu
    Powered by MacOS X


    ...vivi la tua vita come se ogni giorno fosse l'ultimo, poichè un giorno lo sarà...

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Originariamente inviato da Wave
    ah...e per quanto riguarda il testo che voglio appaia a destra????anche qui c è un opzione da attivare oltre a schermo.setHorizontalTextPosition(javax.swing.Swin gConstants.RIGHT);????
    Mi sa che il metodo da usare è un altro:
    codice:
    schermo.setHorizontalAlignment(JLabel.RIGHT);
    Per l'altro problema, ci lavoro un po' su... devo vedere dov'è il problema..


    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

  7. #7
    Utente di HTML.it L'avatar di Wave
    Registrato dal
    May 2003
    Messaggi
    644
    mi sento in colpa se adesso ti metti a lavorare per risolvere il problema.....grazie di tutto...
    LINUX
    Powered by Ubuntu
    Powered by MacOS X


    ...vivi la tua vita come se ogni giorno fosse l'ultimo, poichè un giorno lo sarà...

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304

    Re: [JAVA] problemino JLabel

    Originariamente inviato da Wave
    codice:
    private void VirgolaMouseClicked(java.awt.event.MouseEvent evt) {
            
            if (premuto = false && operatore == 0){
                input1 = input1 + ".";
                schermo.setText(input1);
                premuto = true;
                return;
            }
            else  if (premuto = false && operatore != 0){
                input2 = input2 + ".";
                schermo.setText(input2);
                premuto = true;
                return;
    Spero vivamente che quanto tu hai scritto qui sia diverso da quello che hai scritto nel codice, altrimenti il motivo è semplice (anche se sfugge): il confronto si fa con == non con =!! Nel tuo caso, poi, puoi completamente evitare il confronto: una variabile booleana rappresenta già di suo una espressione booleana: perchè confrontare un true con un altro true o con un false se si conosce già il suo valore?
    codice:
    private void VirgolaMouseClicked(java.awt.event.MouseEvent evt) {
            
            if (!premuto && operatore == 0){
                input1 = input1 + ".";
                schermo.setText(input1);
                premuto = true;
                return;
            }
            else  if (!premuto && operatore != 0){
                input2 = input2 + ".";
                schermo.setText(input2);
                premuto = true;
                return;
    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

  9. #9
    Utente di HTML.it L'avatar di Wave
    Registrato dal
    May 2003
    Messaggi
    644

    Re: Re: [JAVA] problemino JLabel

    Originariamente inviato da LeleFT
    Spero vivamente che quanto tu hai scritto qui sia diverso da quello che hai scritto nel codice, altrimenti il motivo è semplice (anche se sfugge): il confronto si fa con == non con =!! Nel tuo caso, poi, puoi completamente evitare il confronto: una variabile booleana rappresenta già di suo una espressione booleana: perchè confrontare un true con un altro true o con un false se si conosce già il suo valore?
    codice:
    private void VirgolaMouseClicked(java.awt.event.MouseEvent evt) {
            
            if (!premuto && operatore == 0){
                input1 = input1 + ".";
                schermo.setText(input1);
                premuto = true;
                return;
            }
            else  if (!premuto && operatore != 0){
                input2 = input2 + ".";
                schermo.setText(input2);
                premuto = true;
                return;
    Ciao.

    madonna mia che stupido....praticamente ogni volta gli dicevo di metterlo uguale a false e non eseguiva il blocco di istruzioni.....che vergogna........

    cmq sia grazie per l'aiuto...
    LINUX
    Powered by Ubuntu
    Powered by MacOS X


    ...vivi la tua vita come se ogni giorno fosse l'ultimo, poichè un giorno lo sarà...

  10. #10
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Prego... non hai idea di quante volte ci sono cascato io quando ero alle prime armi con C e Java, provenendo dal Pascal e dal QBasic!! :gren:


    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

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.