Risultati da 1 a 15 di 15

Discussione: Java (awt)

  1. #1
    Il Niubbi L'avatar di 9800PRO
    Data Registrazione
    30-03-05
    Località
    Mestre
    Messaggi
    274

    Predefinito Java (awt)

    Qualcuno sà usare GridBadLayout o qualcos'altro a patto che non siano GridLayout,FlowLayout,BorderLayout
    Se magari sapete qualche guida che possa aiutarmi al riguardo mi farebbe molto piacere

  2. #2
    Suprema Borga Imperiale L'avatar di fedyx
    Data Registrazione
    09-10-01
    Località
    nel secco non riciclabile
    Messaggi
    17,067

    Predefinito Re: Java (awt)

    scusa ma avevo postato roba per swing , cmq per vedere l'utilizzo potresti usare l'api java qui http://java.sun.com/j2se/1.5.0/docs/api/ index.html per quanto riguarda i layout manager per awt c'è anche cardlayout.

  3. #3
    Banned L'avatar di Pongo
    Data Registrazione
    28-10-04
    Località
    Altrove
    Messaggi
    7,801

    Predefinito Re: Java (awt)

    9800PRO ha scritto ven, 24 febbraio 2006 alle 17:17
    Qualcuno sà usare GridBadLayout o qualcos'altro a patto che non siano GridLayout,FlowLayout,BorderLayout
    Se magari sapete qualche guida che possa aiutarmi al riguardo mi farebbe molto piacere

    Si, il mio preferito.

    Se hai dei dubbi, chiedi.

    Normalmente per una impaginazione decente uso il flow layout sul frame principale, poi metto i vari panel e al loro interno setto il gridbag layout. Praticaente vengono fatte delle celle.

    Puio decidere gli offset, puoi decidere se un elemento occupa più di una riga o più di una colonna e altre cosine simpatiche, tipo l'anchor all'interno della cella.

    Molto carino da usare una volta che hai preso mano.



    EDIT: TI scosiglio eclipse per lavorare con il gridbag layout, molto meglio netbeans.

    Provare per credere!

  4. #4
    Il Niubbi L'avatar di 9800PRO
    Data Registrazione
    30-03-05
    Località
    Mestre
    Messaggi
    274

    Predefinito Re: Java (awt)

    C'è una versione di netbeans per linux

  5. #5
    Banned L'avatar di Pongo
    Data Registrazione
    28-10-04
    Località
    Altrove
    Messaggi
    7,801

    Predefinito Re: Java (awt)

    9800PRO ha scritto ven, 03 marzo 2006 alle 18:37
    C'è una versione di netbeans per linux
    Bene!

  6. #6

    Predefinito Re: Java (awt)

    volevo porvi una domanda che sicuramente per molti di voi sarà banale però io non riesco a darmi una risposta.
    oggi ho cercato di creare per la prima volta una semplicissima interfaccia grafica in java ed ho trovato decisamente utile i tutorial presenti sul sito della sun.

    come prima cosa ho preso il secondo tutorial e ho provato a fare qualche modifica al codice per capire un poco come funzianavano le cose riguardo agli eventi, all'aggiunta di bottoni ecc.

    una cosa non capisco, ed è come mai non riesco a cambiare le dimensioni del frame nonostante modifico i valori in new Dimension().

    ecco l'esempio del codice:

    Codice:
    /**
     * CelsiusConverter.java is a 1.4 application that 
     * demonstrates the use of JButton, JTextField and
     * JLabel.  It requires no other files.
     */
    
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    
    public class CelsiusConverter implements ActionListener {
        JFrame converterFrame;
        JPanel converterPanel;
        JTextField tempCelsius;
        JLabel celsiusLabel, fahrenheitLabel;
        JButton convertTemp;
        JButton prova;
    
        public CelsiusConverter() {
            //Create and set up the window.
            converterFrame = new JFrame("Convert Celsius to Fahrenheit");
            converterFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            converterFrame.setSize(new Dimension(600, 600));
            
            //Create and set up the panel.
            converterPanel = new JPanel(new GridLayout(3, 2));
    
            //Add the widgets.
            addWidgets();
            
            //Set the default button.
            /**
             * Questo è il metodo per impostare il bottone di default ossia quello
             * che viene automaticamente eseguito alla pressione del tasto INVIO
             */
            converterFrame.getRootPane().setDefaultButton(convertTemp);
    
            //Add the panel to the window.
            converterFrame.getContentPane().add(converterPanel, BorderLayout.CENTER);
    
            //Display the window.
            converterFrame.pack();
            converterFrame.setVisible(true);
        }
    
        /**
         * Create and add the widgets.
         */
        private void addWidgets() {
            //Create widgets.
            tempCelsius = new JTextField(2);
            celsiusLabel = new JLabel("Celsius", SwingConstants.LEFT);
            convertTemp = new JButton("Convert");
            fahrenheitLabel = new JLabel("Fahrenheit", SwingConstants.LEFT);
            prova = new JButton("proviamo");
    
            //Listen to events from the Convert button.
            convertTemp.addActionListener(this);
            convertTemp.setActionCommand("uno");
            
            prova.addActionListener(this);
            prova.setActionCommand("due");
    
            //Add the widgets to the container.
            converterPanel.add(tempCelsius);
            converterPanel.add(celsiusLabel);
            converterPanel.add(convertTemp);
            converterPanel.add(fahrenheitLabel);
            converterPanel.add(prova);
            
            celsiusLabel.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
            fahrenheitLabel.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
        }
    
        public void actionPerformed(ActionEvent event) {
            if ("uno".equals(event.getActionCommand())) {
            	try {
            		//Parse degrees Celsius as a double and convert to Fahrenheit.
            		int tempFahr = (int)((Double.parseDouble(tempCelsius.getText()))
                        * 1.8 + 32);
            		fahrenheitLabel.setText(tempFahr + " Fahrenheit");
            	}
            	catch(Exception e) {
            		fahrenheitLabel.setText("Fahrenheit");
            	}
            	
        	}
        	else {
        		fahrenheitLabel.setText("Hai premuto il tasto prova");
        		tempCelsius.setText("");
        	}
        }
        
         /**
         * Create the GUI and show it.  For thread safety,
         * this method should be invoked from the
         * event-dispatching thread.
         */
        private static void createAndShowGUI() {
            //Make sure we have nice window decorations.
            //JFrame.setDefaultLookAndFeelDecorated(true);
    
            //CelsiusConverter converter = new CelsiusConverter();
            new CelsiusConverter();
        }
    
        public static void main(String[] args) {
            //Schedule a job for the event-dispatching thread:
            //creating and showing this application's GUI.
            javax.swing.SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    createAndShowGUI();
                }
            });
        }
    }
    Caspita, so che è un problema da poco conto però è alquanto fastidioso!
    Qualcuno riesce a risolverlo?

  7. #7
    Shogun Assoluto L'avatar di Mithrandir
    Data Registrazione
    28-04-03
    Località
    Reginasirarefà
    Messaggi
    26,019

    Predefinito Re: Java (awt)

    usa SWT

  8. #8
    Suprema Borga Imperiale L'avatar di fedyx
    Data Registrazione
    09-10-01
    Località
    nel secco non riciclabile
    Messaggi
    17,067

    Predefinito Re: Java (awt)

    da quel che ho capito se usi il metodo setsize selezioni si la dimensione della finestra , ma se dopo usi pack la dimensione della
    finestra cambia.Credo che se vuoi che anche dopo il pack() la dimensione sia quella da te desiderata devi usare setPreferredSize che funziona nello stesso modo si prende un dimension

  9. #9

    Predefinito Re: Java (awt)

    grazie mille!
    commentando usando setPreferredSize sono riuscito a risolvere il problema

  10. #10
    Il Niubbi L'avatar di wrath
    Data Registrazione
    17-11-05
    Località
    Campodipietra
    Messaggi
    272

    Predefinito Re: Java (awt)

    Ragazzi, so che non centra un pippero, ma non sapevo dove cappero piazzare questo messaggio.
    Qualcuno sa dirmi come faccio a creare con eclipse un programma eseguibile su qualsiasi altro pc?
    nel senso, una volta buttato giù il codice e aver visto che funziona, come faccio a creare un file .exe per esempio?
    Grazie per la risposta

  11. #11
    Suprema Borga Imperiale L'avatar di fedyx
    Data Registrazione
    09-10-01
    Località
    nel secco non riciclabile
    Messaggi
    17,067

    Predefinito Re: Java (awt)

    allora se stai programmando in java non puoi staccarti dalla java virtual machine e creare un exe a se stante il minimo che puoi fare è creare un loader con un programma apposito(ce ne sono molti , io personalmente conosco exe4j).Un loader è praticamente un exe che mostra uno splash screen e lancia il jar principale dell'applicazione (per esempio eclipse.exe è un loader e eclipse può funzionare anche senza quel file lanciando startup.jar).Fatto questo il programma ha sempre bisogno di una java virtual machine installata , anche se alcune applicazione si portano appresso una loro versione della jvm che mettono in una cartella interna al programma(per esempio jext , un editor di testo in java ha una sua jvm).Ovviamente devi mettere in conto che portarti una jvm nell'installer occupa almeno 20 di mb di spazio che di certo non sono convenienti se il tuo prog è più piccolo di una 10 di mb.
    Detto questo con Eclipse puo esportare il tuo progetto in formato jar(clic destro sul tuo progetto poi clicc su export e jar file) e specificando la main class lo puoi lanciare direttamente.

  12. #12
    Il Niubbi L'avatar di wrath
    Data Registrazione
    17-11-05
    Località
    Campodipietra
    Messaggi
    272

    Predefinito Re: Java (awt)

    ...... Mi serve un'altra mano. C'è un modo per far si che una finestra(JFrame) si chiuda dopo aver premuto su un bottone (JButton)? NB: la finestra si trova in una classe, il bottone si trova in un'altra classe che estende quella di JPanel e implementa ActionListener... Devo per forza metterli sia il JFrame che il JButton nella stessa classe per far si che quando premo il JButton il JFrame si chiuda( o meglio si nasconda)?
    Mi basta un "sì" come risposta nel caso in cui i due debbano stare obbligatoriamente nella stessa classe, la soluzione (:evilgrin in caso contrario

  13. #13
    Il Niubbi L'avatar di wrath
    Data Registrazione
    17-11-05
    Località
    Campodipietra
    Messaggi
    272

    Predefinito Re: Java (awt)

    Mi sa che non sono stato proprio chiarissimo, quindi scrivo un po' di codice, per essere un po' più preciso:

    //Pannello con bottone
    //vari import che non riporto

    public class MyPanel extends JPanel implements ActionListener
    {
    public MyPanel()
    {
    super();
    JButton b = new JButton("Ciao");
    b.addActionListener(this);
    add(b);
    }
    public void actionPerformed(ActionEvent e)
    {
    /*qui cosa devo scrivere per far si che il JFrame si chiuda??? Posso farlo o devo mettere tutto in una classe?*/
    }
    }//fine della classe con pannello e bottone

    public class Finestra {//che fantasia che ho,eh?
    public Finestra()
    {
    JFrame f = new JFrame("Bamboocha!");
    Container c = f.getContentPane();
    MyPanel p = new MyPanel();
    c.add(p);
    f.pack();
    f.show();
    //oppure scrivo qui qualcosa
    }
    }//fine della classe finestra


  14. #14
    Suprema Borga Imperiale L'avatar di fedyx
    Data Registrazione
    09-10-01
    Località
    nel secco non riciclabile
    Messaggi
    17,067

    Predefinito Re: Java (awt)

    allora se stai programmando con la jdk 1.5 ti sarai accorto di un warning in compilazione è dato dall'uso del metodo show() che è stato sostituito dal metodo setVisible(boolean) , in ogni caso
    per nascondere una finestra basta : se stai in jdk 1.5 (la tua jframe).setVisible(false) oppure (la tua jframe).hide()
    questo è tutto.

  15. #15
    Il Niubbi L'avatar di wrath
    Data Registrazione
    17-11-05
    Località
    Campodipietra
    Messaggi
    272

    Predefinito Re: Java (awt)

    Grazie, anche se non è propriamente la risposta che desideravo. Alla fine sono riuscito nel mio intento da solo.
    Comunque grazie davvero per la risposta.
    //vari import
    public class CipeCiop implements ActionListener{
    JFrame finestra;
    JButton bottone;
    JPanel pannello;
    public CipeCiop()
    {
    finestra = new JFrame("Bamboocha!");
    Container c = finestra.getContentPane();
    bottone = new JButton("Tutto è bamboocha!");
    pannello = new JPanel();
    bottone.addActionListener(this);
    pannello.add(bottone);
    c.add(pannello);
    finestra.pack();
    finestra.show();//o l'altro....
    }
    public void actionPerformed(ActionEvent e){
    finestra.hide();//Se voglio solo far sparire la finestra...
    System.exit(0);//...se voglio uscire anche dal programma
    }
    }

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice HTML è Disattivato