Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    107

    label non visualizzate

    OK scusate ragazzi. Soprattutto alka. Non pensavo che inserire link esterni e chiedere pareri generici avrebbe causato la chiusura del mio post. Mi limito allora ad indicare i problemi uno per volta.

    Il primo: ho creato la classe JSM07 che comprende una gui con un pannello e 4 label.

    Qual'è il motivo x cui non si vede nulla?? posto il codice:

    codice:
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    
    class JSM07 extends JFrame{
    	private SerieA serieA;
    	
    	public JSM07(){
    		setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
    		Dimension dim=Toolkit.getDefaultToolkit().getScreenSize();
    		int larghezzaSchermo=(int)dim.getWidth();
    		int altezzaSchermo=(int)dim.getHeight();
    		serieA=new SerieA();
    		
    		setTitle("JVM07");
    		setBounds((int)((larghezzaSchermo-800)/2),(int)((altezzaSchermo-600)/2),800,600);
    		setResizable(false);
    		addWindowListener(new Chiudi());
    		setVisible(true);
    		
    		Panel p = new Panel();
    		Label inter = new Label(""+serieA.getNomeSquadra("Inter"));
    		Label milan = new Label(""+serieA.getNomeSquadra("Milan"));
    		Label palermo = new Label(""+serieA.getNomeSquadra("Palermo"));
    		Label roma = new Label(""+serieA.getNomeSquadra("Roma"));
    		p.add(inter);
    		p.add(milan);
    		p.add(palermo);
    		p.add(roma);
    		add(p);
    	}
    	
    	class Chiudi extends WindowAdapter {
        public void windowClosing(WindowEvent event) {
        	JOptionPane opt = new JOptionPane();
          if (opt.showConfirmDialog(null,"Sei sicuro di voler uscire dal gioco?", "Attenzione!", 0)==0){
          	System.exit(0);
    	    }
        }
      }
    	
    	public static void main (String[] args){
    		JSM07 jsm = new JSM07();
    	}
    }
    Giovanni

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    107
    ho trovato... togliendo il setResizable(false) si riesce a mettere la finestra a tutto schermo e quando si torna a vederla piccola si vedono le Label... ma come faccio ad evitare questo bug???
    Giovanni

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    107

    Altro problema...

    OK ho risolto!! Bastava mettere setBounds, setTitle, setVisible e setResizable alla fine di tutto, subito prima della chiusura della } del costruttore della gui!!

    Però ragazzi adesso ho un quesito davvero importante, vi prego di aiutarmi perchè, se qualcuno sa risolvermi questo problema, mi aiuta davvero tanto!!
    Io ho tanti "Oggetti" dello stesso tipo che richiamano il metodo getNome(). Quando richiamo questo metodo con la classica notazione puntata oggetto.getNome() non ho alcun problema se non fosse che voglio settare questa operazione una sola volta all'inizio del codice e inizializzare "oggetto" ogni volta con un nuovo nome x richiamare getNome() da diversi oggetti.

    Mi spiego meglio: posso mettere a posto di "oggetto" una stringa e utilizzarla nel richiamo del metodo?

    ad esempio se io devo richiamare 3 volte ciccio.getNome() e poi 2 volte franco.getNome() posso settare una String x="ciccio" e fare x.getNome() e poi settare x="franco" per poter fare di nuovo x.getNome()?
    In poche parole fare tanti x.getNome() e poi inizializzare la x come dico io?? ho provato così ma non funziona!!! ovviamente mi dice che in Java.lang.String non c'è il metodo getNome()...
    ho provato anche con Object ma non va...

    COME POSSO FAREEE???? Vi prego, aiutatemi!!!
    Giovanni

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Quello che chiedi non lo puoi fare in questo modo.
    Però gli oggetti sono nati anche per questo.

    Se, ad esempio, l'oggetto "ciccio" è di tipo TuoTipo, allora devi dichiarare un oggetto di tipo TuoTipo e, di volta in volta, far "puntare" questo oggetto verso quello su cui desideri chiamare il metodo.
    Esempio pratico:
    codice:
    // Tu ora faresti così
    TuoTipo ciccio = ...;
    TuoTipo franco = ...;
    
    ciccio.getNome();
    ...
    ciccio.getNome();
    ...
    franco.getNome();
    Utilizzando i metodi e un oggetto generico, "risolvi" in questo modo:
    codice:
    public void richiamaGetNome(TuoTipo x) {
       x.getNome();
    }
    
    ...
    
    richiamaGetNome( ciccio );
    ...
    richiamaGetNome( ciccio );
    ...
    richiamaGetNome( franco );
    Non so se la cosa ti convenga, messa in questi termini, ma ti garantisco che per progetti più complessi, questa è la via migliore.


    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

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    107

    Uso di database

    OK Grazie Mille LeleFT!!! Sono riuscito grazie al tuo consiglio.

    Adesso cercavo di interfacciare il programmino ad un database

    Sono andato in strumenti di amministrazione/ODBC e in DNS di Sistema ho inserito "dbGiocatori" in Nome Origine Dati e "c:\JSD07\dbGiocatori.mdb" in Descrizione per utilizzare il database Access dbGiocatori.mdb

    Ho creato la Tabella1 e ho inserito un pò di valori e nel file java ho inserito:
    codice:
    import java.sql.*;
    
    class Database{
    	public static void main(String[] args){
    	try {
        try {
          Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        } catch (ClassNotFoundException e) {
          System.out.println ("MS Access device driver does not exist");
          System.exit(1);
        }
    
        Connection conn =
        DriverManager.getConnection ("jdbc:odbc:dbGiocatori");
    
        Statement stmt = conn.createStatement ();
    
        ResultSet rset = stmt.executeQuery ("SELECT * FROM Tabella1");
    
        while (rset.next ())  {
          System.out.println   (rset.getString (1)+" "+rset.getString(2));
        }
         
        rset.close();
    
        stmt.close();
    
        conn.close();   
       } catch (SQLException e) {
          System.out.println("Error accessing DB ");
          System.out.println("  Error code is : "+e.getErrorCode());
          System.out.println("  Error message is :"+e.getMessage());
       }
      }
    }
    Però mi dà sempre errore!!!
    Mi esce Error accessing DB
    Error code is: 0
    Error message is: No data found

    NO DATA FOUND??? Ma se li ho inseriti i dati nel database!!!
    Perchè fa così? Qualcuno saprebbe rispondermi?? Grazie infinite anticipatamente...
    Giovanni

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    72
    In base al messaggio di ritorno del DB e dalla tua descrizione dei passi per configurare jdbc , hai molto probabilmente sbagliato a configurare dbGiocatori.mdb.

    Quello che devi fare quando sei nella scheda "Configurazione ODBC per MIcrosoft Access" è cliccare su "seleziona" poi andare a sfogliare il file system fino a selezionare il tuo db , infine dare ok.

    A me sembra , da quello che scrivi , che il path l'hai inserito nelcampo di testo "descrizione".

    Ciao.

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

    Moderazione

    Si tratta di un problema di natura completamente diversa da quella trattata su questa discussione.

    Aprine una nuova.


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