Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 22

Discussione: [JAVA] Frame di frame!

  1. #11
    ciao, ora faciendo così il codice:

    è solo il costruttore
    codice:
    moto(String tiltle){
    init();
    }
    public void init(){
    JButton b1=new JButton("I tuoi dati");
    JButton b2=new JButton("Il tuo aspetto");
    JButton b3=new JButton("La tua MOTO");
    JButton b4=new JButton("Guadagna soldi");
    JButton b5=new JButton("Vai dalla tipa");
    JButton b6=new JButton("Gareggia in MOTO");
    bott[0]=(JButton) add(b1);
    bott[1]=(JButton) add(b2);
    bott[2]=(JButton) add(b3);
    bott[3]=(JButton) add(b4);
    bott[4]=(JButton) add(b5);
    bott[5]=(JButton) add(b6);
    for (int a=0;a<6;a++)
    bott[a].addActionListener(this);
    b1.setBounds(300,30,180,30);
    b2.setBounds(300,70,180,30);
    b3.setBounds(300,110,180,30);
    b4.setBounds(300,150,180,30);
    b5.setBounds(300,190,180,30);
    b6.setBounds(300,230,100,30);
    b1.setBackground(Color.blue);
    for (int b=0;b<6;b++)
    bott[b].setBorder(null);
    }
    e poi quando lo avvio, dopo ke me l'ha compilato correttamente, mi da il seguente errore:



    Cosa posso fare?

  2. #12
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    L'errore non è nel codice che hai postato, è nel punto in cui setti il LayoutManager.

    Non devi applicare il metodo setLayout() all'oggetto moto:
    codice:
    moto.getContentPane().setLayout(...);

    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

  3. #13
    allora tutto il codice è questo:
    codice:
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.applet.*;
    
    class moto extends JFrame implements ActionListener{
    JButton bott[]=new JButton[6];
    int soldi=500;
    String cassa="Cassa: ",msg="";
    
    moto(String tiltle){
    init();
    }
    public void init(){
    JButton b1=new JButton("I tuoi dati");
    JButton b2=new JButton("Il tuo aspetto");
    JButton b3=new JButton("La tua MOTO");
    JButton b4=new JButton("Guadagna soldi");
    JButton b5=new JButton("Vai dalla tipa");
    JButton b6=new JButton("Gareggia in MOTO");
    bott[0]=(JButton) add(b1);
    bott[1]=(JButton) add(b2);
    bott[2]=(JButton) add(b3);
    bott[3]=(JButton) add(b4);
    bott[4]=(JButton) add(b5);
    bott[5]=(JButton) add(b6);
    for (int a=0;a<6;a++)
    bott[a].addActionListener(this);
    getContentPane().add(b1);
    getContentPane().add(b2);
    getContentPane().add(b3);
    getContentPane().add(b4);
    getContentPane().add(b5);
    getContentPane().add(b6);
    b1.setBounds(300,30,180,30);
    b2.setBounds(300,70,180,30);
    b3.setBounds(300,110,180,30);
    b4.setBounds(300,150,180,30);
    b5.setBounds(300,190,180,30);
    b6.setBounds(300,230,100,30);
    b1.setBackground(Color.blue);
    for (int b=0;b<6;b++)
    bott[b].setBorder(null);
    }
    public void paint(Graphics g){
    g.drawString(cassa+soldi,600,300);
    g.drawString(msg,100,400);
    }
    
    public static void main(String args[]){
    moto Moto= new moto("STREET RACER");
    Moto.setSize(700,500);
    Moto.setTitle("Street Racer");
    Moto.setVisible(true);
    }
    public void actionPerformed(ActionEvent ae){
    if (ae.getSource()==bott[0]) msg="hai schiacciato il pulsante 1";
    repaint();
    }
    }
    come puoi notare nn ho messo setLayuot(); questo errore me lo da da quando richiamo init() nel costruttore!
    xkè??
    ciao

  4. #14
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Adesso ho visto... cos'è sta roba qui?
    codice:
    bott[0]=(JButton) add(b1);
    bott[1]=(JButton) add(b2);
    bott[2]=(JButton) add(b3);
    bott[3]=(JButton) add(b4);
    bott[4]=(JButton) add(b5);
    bott[5]=(JButton) add(b6);
    Forse volevi mettere qualcosa del tipo:
    codice:
    bott[0] = new JButton("I tuoi dati");
    ... // eccetera
    Togliendo le definizioni dei pulsanti sopra....


    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. #15
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Ovviamente dopo devi riferirti ai pulsanti, non più attraverso b1, b2, ecc... ma tramite bott[0], bott[1]... anche quando definisci le posizioni con setBounds().

    PS: Se vuoi usare il setBounds(), però, devi togliere il LayoutManager aggiungendo all'interno di init() questa riga:
    codice:
    getContentPane().setLayout(null);
    altrimenti è come se non avessi fatto niente con setBounds()


    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. #16
    si, ora funziona...ma ho ancora qualke problemino ke cerkerò di risolverlo da solo...se nn ci riesco posto ancora il codice!

    Ciao, grazie ancora!

  7. #17
    Scusa la mia ignoranza xkè quando lo mando in esecuzione i pulsanti nn si vedono, e inceve poi quando li schiaccio si vedono??? ho provato anche a mettere setVisible(true) o show() ma nn riesco.... come mai???
    ciao


  8. #18
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Modifica il metodo paint() che hai ridefinito e rinominalo paintComponent().

    Anzi... è meglio se lo rimuovi.

    Per visualizzare la stringa utilizza una JLabel.


    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. #19
    Ok, ci sono riuscito!
    Ciao, grazie


  10. #20
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Originariamente inviato da anx721
    Devi utilizzare JInternalFrame e JDesktopFrame: aggiungi un JDesktopFrame al tuo frame principale, poi per aprire altri frame interni aggiungi i JInternalFrame al JDesktopFrame; vedi i tutorial della sun per sapere meglio come usarli. I JInternalFrame sono utilizzati per disporre un frame all'interno di un contenitore, come un qualsisi componente.

    Se invece ti serve solo una finestra di dialogo che ti blocca l'applicazione, ad esempio per avvertire l'utente di un messggio d'errore, o per fargli inserire dell'input, usa JOptionPane.
    Ho una curiosità: che classe è JDesktopFrame che non l'ho trovata da nessuna parte nemmeno nel sito della Sun??


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