View Full Version : [Java]Creare un'applicazione
Giovanni Tavella
24-07-2010, 16:17
Devo creare un'applicazione o un piccolo gioco per l'esame di "Laboratorio di programmazione".
Esempio:
applicazione che gestisce le vendite di un negozio che vende articoli sportivi(con semplici metodi del tipo aggiungi articolo e vendi articolo).
Per quanto riguarda la classe "negozio" e "articolo"(e relativi metodi)non ho problemi, ma devo associare a questo "negozio " una sua (interfaccia) grafica.
Mi sarebbero d'aiuto dei "vostri appunti" o esempi su come sviluppare la parte grafica di una qualsiasi classe .
:muro: :muro:
Spero di esserre stato chiaro:mc: :mc:
:help: :help:
Mi sarebbero d'aiuto dei "vostri appunti" o esempi su come sviluppare la parte grafica di una qualsiasi classe .
:muro: :muro: con Swing: http://download.oracle.com/docs/cd/E17409_01/javase/tutorial/uiswing/index.html
anonimizzato
24-07-2010, 18:55
Come ti ha suggerito fero86, per Java la cosa più semplice e ovvia è utilizzare Swing per la creazione della tua interfaccia grafica.
Ti conviene cominciare a dargli un'occhiata e a seguire qualche tutorial, poi, nel caso, fai qualche domanda più specifica perchè chiedere interi "appunti" (o soluzioni pronte) di terzi su esercizi d'esame non è utile per te ed è vietato dal regolamento. ;)
Giovanni Tavella
24-07-2010, 19:49
chiedere interi "appunti" (o soluzioni pronte) di terzi su esercizi d'esame non è utile per te ed è vietato dal regolamento. ;)
lo so :) io chiedevo appunti infatti(esempi su come creare bottoni, pannelli e cose simili..non la soluzione del mio esercizio.
Comunque ora provo a vedere come funziona questa Swing :stordita:
http://download.oracle.com/docs/cd/E17409_01/javase/tutorial/uiswing/components/index.html
Faresti molto prima ad usare un editor di GUI come NetBeans ;).
Giovanni Tavella
25-07-2010, 10:29
Raga tutte queste "lezioni" che mi avete suggerito utlizzano NetBeans IDE, va bene ugualmentye se uso Eclipse ?:help:
Se parli del mio link ti sbagli, puoi anche programmare senza IDE per quanto gli riguarda :O
Raga tutte queste "lezioni" che mi avete suggerito utlizzano NetBeans IDE, va bene ugualmentye se uso Eclipse ?:help:
Provalo almeno Netbeans ;).
pernacentus
26-07-2010, 08:58
Raga tutte queste "lezioni" che mi avete suggerito utlizzano NetBeans IDE, va bene ugualmentye se uso Eclipse ?:help:
Anche io sono un "eclipsiano", ma per quanto riguarda le interfacce grafiche in confronto a Netbeans non c'è paragone. Poi per usare un editor di interfacce su Eclipse dovresti installarti un plugin aggiuntivo chiamato Jigloo.
Giovanni Tavella
26-07-2010, 10:12
Provalo almeno Netbeans ;).
Ho installato Netbeans, ed effettivamente per quanto riguarda le GUI mi è sembrato molto meglio di eclipse.
Il mio problema è che , dovendo sostenere l'esame di "lab.di programmazione" sono costretto ad usare eclipse
e probabilmente vogliono anche che tu impari a scrivere le gui a mano, che non è chissà quale grande impresa, soprattutto grazie alla documentazione sun (oracle whatever :E)
banryu79
26-07-2010, 14:27
Il mio problema è che , dovendo sostenere l'esame di "lab.di programmazione" sono costretto ad usare eclipse
IDE a parte (Netbeans/Eclipse/altri...) hai vincoli circa la libreria grafica da usare?
Userai Swing [usata dal GUI builder di Netbeans] o SWT [usata dal GUI builder di Eclipse]?
Il codice lo puoi anche scrivere a mano, ma sarebbe opportuno capire quale libreria specifica userai. Controlla di non avere vincoli in tal senso.
Se puoi e vuoi usare Swing:
c'è un ottimo tutorial introduttivo (2 orette di lettura) proprio su questo forum, scritto da PGI.
Guarda nella sotto-sezione [Corsi, Tutorial e FAQ].
Giovanni Tavella
26-07-2010, 17:44
hai vincoli circa la libreria grafica da usare?
.
No non ho vincoli ma il codice devo per forza scriverlo a mano:( ..
Ho provato a fare una piccola applicazione ,che riceve un numero intero(in una istanza JTextField) e al click di un Bottone(JButton) scriva su un JLabel il quadrato di questo numero.
Ma ho dei dubbi .
Scrivo il codice:
import javax.swing.*;
import java.awt.*;
public class PROVA {
public static void avvia(){
JFrame frame = new JFrame("prova ");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel Panel=new JPanel();
JLabel Label=new JLabel("SCRIVIMI un numero ");
JLabel Labeldue=new JLabel("qui scriverò il numero al quadrato");
JTextField Testo=new JTextField(10);
JButton Button=new JButton("il bottone");
Panel.add(Label);
Panel.add(Labeldue);
Panel.add(Testo);
Panel.add(Button);
frame.getContentPane().add(Panel);
frame.pack();
frame.show();
//*i miei dubbi iniziano qui, dove dovrei scrivere il codice che, al click di"Button" prende il numero da "Testo"( JTextField ) lo moltiplica per se stesso e lo scrive su "Labeldue"*/
//ditemi dove sbaglio perché mi da errore
Button.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
Moltiplica(evt); }
});
public void Moltiplica(java.awt.event.ActionEvent evt) {
int num = (int)((Double.parseDouble(Testo.getText()));
int pow=num*num;
//MODIFICA IL TESTO Di Labeldue:
Labeldue.setText(pow + ": è il suo quadrato");
}//fine
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
avvia();
}
});
}//fine main
}//FINE_CLASSE
:doh: :help: :help:
banryu79
26-07-2010, 18:28
Ho preso il tuo codice e l'ho modificato così:
import javax.swing.*;
public class PROVA
{
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
avvia();
}
});
}//fine main
public static void avvia() {
final JFrame FRAME = new JFrame("prova ");
FRAME.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
JLabel label = new JLabel("SCRIVIMI un numero ");
final JLabel LABEL_DUE = new JLabel("numero al quadrato");
final JTextField TESTO = new JTextField(10);
JButton button = new JButton("il bottone");
button.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
int num = (int) (Double.parseDouble(TESTO.getText()));
int pow=num*num;
//MODIFICA IL TESTO Di Labeldue:
LABEL_DUE.setText(pow + ": è il suo quadrato");
}
});
panel.add(label);
panel.add(LABEL_DUE);
panel.add(TESTO);
panel.add(button);
FRAME.getContentPane().add(panel);
SwingUtilities.invokeLater(new Runnable() {
public void run() {
FRAME.pack();
FRAME.setVisible(true);
}
});
}
}//FINE_CLASSE
Due osservazioni.
La prima sullo "stile"/"convenzioni" con cui si scrive il sorgente (faccenda assolutamente personale, ma conoscere e applicare le convenzioni risulta utile quando si scambia codice con altri programmatori, aiuta a capirsi con minore fatica).
I nomi delle variabili dei campi e dei metodi iniziano con la lettera minuscola e seguono la convenzione nota come camelCase (http://it.wikipedia.org/wiki/CamelCase).
Se la variabile è final viene scritta in maiuscolo, usando l'underscore come separatore tra le parole.
La seconda osservazione è il fatto che la dichiarazione del tuo metodo Moltiplica era errata rispetto al modo in cui ti proponevi di usarlo: per invocarlo da un contesto statico avresti dovuto dichiararlo come metodo statico.
I metodi non-statici, cioè i metodi di istanza sono i metodi di cui è dotata l'istanza di una classe a runtime; sono cioè visibili dalle singole istanze (che li condividono), ma non dalla classe in quanto tale.
I metodi statici invece, sono metodi di classe di cui è dotata la classe in quanto tale; un metodo statico è visibile anche alle eventuali istanze di una classe, ma non è neccessaria l'istanza per accedervi.
Infine, sconsiglio l'invocazione del metodo show per vsualizzare un frame, in quanto deprecato.
Usa invece setVisible(true) per visualizzarlo e setVisible(false) per nasconderlo di nuovo, al posto dei vecchi show/hide.
Chiamare il metodo pack() o setVisible() poi, ha il notevole effetto di rendere il frame visualizzabile: per fare le cose in modo pulito, data l'architettura single thread di Swing, è neccessario invocare questi metodi nell'Event Disptacher Thread.
Maggiori dettagli (molto chiari) li trovi nelle prime 3-4 pagine di quel tutorial di PGI che ti ho indicato.
Io ti consiglio vivamente di leggerlo: ti farà risparmiare un sacco di tempo :)
Giovanni Tavella
26-07-2010, 19:11
Maggiori dettagli (molto chiari) li trovi nelle prime 3-4 pagine di quel tutorial di PGI che ti ho indicato.
Io ti consiglio vivamente di leggerlo: ti farà risparmiare un sacco di tempo :)
Già scaricato (dopo aver letto la tua prima risposta), è davvero una guida ottima, utilissima :)
Sullo "stile"/"convenzioni" con cui si scrive il sorgente (faccenda assolutamente personale, ma conoscere e applicare le convenzioni risulta utile quando si scambia codice con altri programmatori, aiuta a capirsi con minore fatica).
Hai ragione , la prossima volta che scriverò del codice farò il possibile per attenermi alle "convenzioni".
Grazie per l'aiuto che mi hai dato ;);)
vBulletin® v3.6.4, Copyright ©2000-2026, Jelsoft Enterprises Ltd.