Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato
Nuova frontiera per i robot tagliaerba, con Ecovacs GOAT O1200 LiDAR Pro che riconosce l'ambiente in maniera perfetta, grazie a due sensori LiDAR, e dopo la falciatura può anche rifinire il bordo con il tagliabordi a filo integrato
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere?
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere?
Equilibrio e potenza definiscono il Samsung Galaxy S26+, un flagship che sfida la variante Ultra e la fascia alta del mercato con il primo processore mobile a 2nm. Pur mantenendo l'hardware fotografico precedente, lo smartphone brilla per un display QHD+ da 6,7 pollici d'eccellenza, privo però del trattamento antiriflesso dell'Ultra, e per prestazioni molto elevate. Completano il quadro la ricarica wireless a 20W e, soprattutto, un supporto software settennale
Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti
Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti
Zeekr sbarca ufficialmente in Italia con tre modelli elettrici premium, X, 7X e 001, distribuiti da Jameel Motors su una rete di 52 punti vendita già attivi. La Zeekr X parte da 39.900 euro, la 7X da 54.100: piattaforma a 800V, chip Snapdragon di ultima generazione, ricarica ultraveloce e un'autonomia dichiarata fino a 615 km WLTP. Le prime consegne sono previste a metà aprile
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 27-04-2007, 09:52   #1
Voltron
Senior Member
 
Iscritto dal: May 2004
Messaggi: 727
[Java]Convertire Applet in Applicazione

Ciao a tutti!
Come da titolo, avrei bisogno di convertire una applet in una applicazione; ho letto che devo creare un jframe che funga da contenitore, e copiare dentro il metodo 'init' del frame il contenuto dell'init dell'applet, ed inserire (sempre nel frame) gli altri metodi presenti nell'applet......Ma non funziona!

questo è il codice dell'applet da convertire in applicazione:
Quote:
import java.applet.Applet;
import java.awt.*;

public class BellmanFord extends Applet
{

public BellmanFord()
{
graphcanvas = new GraphCanvas(this);
options = new Options(this);
documentation = new Documentation(this);
routeTable = new RouteTable();
}

public void init()
{
setLayout(new BorderLayout(10, 10));
add("Center", graphcanvas);
add("North", documentation);
add("East", options);
add("South", routeTable);
}

public Insets insets()
{
return new Insets(10, 10, 10, 10);
}

public void lock()
{
graphcanvas.lock();
options.lock();
}

public void unlock()
{
graphcanvas.unlock();
options.unlock();
}

GraphCanvas graphcanvas;
Options options;
Documentation documentation;
RouteTable routeTable;
}
Questo è il codice del frame(in grassetto le parti che ho aggiunto):
Quote:

public class JFrame extends javax.swing.JFrame {

/** Creates new form JFrame */
public JFrame() {
initComponents();
}

/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
// <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
private void initComponents() {

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 400, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 300, Short.MAX_VALUE)
);

add("Center", graphcanvas);
add("North", documentation);
add("East", options);
add("South", routeTable);


pack();

}// </editor-fold>//GEN-END:initComponents

/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new JFrame().setVisible(true);
}
});
}

// Variables declaration - do not modify//GEN-BEGIN:variables
// End of variables declaration//GEN-END:variables
GraphCanvas graphcanvas;
Options options;
Documentation documentation;
RouteTable routeTable;

}
Qualcuno saprebbe indicarmi cosa aggiungere/modificare??

Ultima modifica di Voltron : 27-04-2007 alle 09:58.
Voltron è offline   Rispondi citando il messaggio o parte di esso
Old 27-04-2007, 11:04   #2
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
non vorrei deire una cavolata..
ma le Applet usano AWT, mentre il JFrame è un componente di swing...
hai provato ad usare un Frame anzichè un JFrame?
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 27-04-2007, 11:10   #3
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da Voltron Guarda i messaggi
Come da titolo, avrei bisogno di convertire una applet in una applicazione; ho letto che devo creare un jframe che funga da contenitore, e copiare dentro il metodo 'init' del frame il contenuto dell'init dell'applet, ed inserire (sempre nel frame) gli altri metodi presenti nell'applet......Ma non funziona!
Guarda, il concetto sarebbe molto semplice: estendere Frame/JFrame piuttosto che Applet/JApplet.
La questione comunque è anche un'altra: la tua applet usa Swing oppure AWT?? Visto che estende Applet, io deduco AWT. Dal tuo codice poi non è possibile capire cosa sono GraphCanvas, RouteTable, ecc....

Una cosa del genere (codice non testato!):
Codice:
import java.awt.*;

public class BellmanFord extends Frame
{
    private GraphCanvas graphcanvas;
    private Options options;
    private Documentation documentation;
    private RouteTable routeTable;

    public BellmanFord ()
    {
        super ("Un titolo");
        setSize (300, 300);

        graphcanvas = new GraphCanvas(this);
        options = new Options(this);
        documentation = new Documentation(this);
        routeTable = new RouteTable();

        setLayout(new BorderLayout(10, 10));
        add("Center", graphcanvas);
        add("North", documentation);
        add("East", options);
        add("South", routeTable);
    }

    /* ...il resto... */

    public static void main (String[] args)
    {
        BellmanFord frame = new BellmanFord ();
        frame.setVisible (true);
    }
}
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 27-04-2007, 11:10   #4
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Prendi la classe BellmanFord e:

1. aggiungi agli import:

import javax.swing.*;

2. cambia

extends Applet

in

extends JFrame

3. nel costruttore aggiungi come ultima riga:

init();

E qui hai fatto. Ora aggiungi al progetto una classe Main, così:

Codice:
//package se c'è
import javax.swing.*;

public class Main {
    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                new Main().start();
            }
        });
    }

    private void start() {
        BellmanFord window = new BellmanFord();
        window.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        window.pack();
        window.setVisible(true);
    
}
E, se non m'è sfuggito qualcosa, dovresti aver trasformato l'applet in applicazione stand-alone.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 27-04-2007, 11:11   #5
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
L'ho già detta quella del pulsantone con la scritta "hey, qualcuno ha già risposto...", vero? :
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 27-04-2007, 11:28   #6
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da PGI-Bis Guarda i messaggi
L'ho già detta quella del pulsantone con la scritta "hey, qualcuno ha già risposto...", vero? :
Sì ma non ti preoccupare .... come diceva il famoso spot: du risposte is megl che uan
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 27-04-2007, 11:33   #7
Voltron
Senior Member
 
Iscritto dal: May 2004
Messaggi: 727
Grazie a tutti!

Innanzitutto vi linko il sito dove ho prelevato l'applet che simula l'algoritmo di BellmanFord(magari può essere utile anche ad altri studenti):

http://www.laynetworks.com/Simulatio...0Algorithm.htm

quì troverete(mi riferisco soprattutto ad andbin che chiedeva informazioni su GraphCanvas, ecc.) gli altri files di cui è composta l'applet che non ho postato poichè molto lunghi.

Comunque ritengo che l'applet usi awt.

Ultima modifica di Voltron : 27-04-2007 alle 11:38.
Voltron è offline   Rispondi citando il messaggio o parte di esso
Old 27-04-2007, 11:34   #8
Voltron
Senior Member
 
Iscritto dal: May 2004
Messaggi: 727
Ora provo a testare il codice fornito da andbin....
Voltron è offline   Rispondi citando il messaggio o parte di esso
Old 27-04-2007, 11:50   #9
Voltron
Senior Member
 
Iscritto dal: May 2004
Messaggi: 727
Allora, ho compilato ed esguito il seguente codice(quello gentilmente fornito da andbin a cui ho aggiunto i metodi mancanti):

Quote:
import java.awt.*;

public class BellmanFord extends Frame
{
private GraphCanvas graphcanvas;
private Options options;
private Documentation documentation;
private RouteTable routeTable;

public BellmanFord ()
{
super ("Un titolo");
setSize (300, 300);

graphcanvas = new GraphCanvas(this);
options = new Options(this);
documentation = new Documentation(this);
routeTable = new RouteTable();

setLayout(new BorderLayout(10, 10));
add("Center", graphcanvas);
add("North", documentation);
add("East", options);
add("South", routeTable);
}

public Insets insets()
{
return new Insets(10, 10, 10, 10);
}

public void lock()
{
graphcanvas.lock();
options.lock();
}

public void unlock()
{
graphcanvas.unlock();
options.unlock();
}

public static void main (String[] args)
{
BellmanFord frame = new BellmanFord ();
frame.setVisible (true);
}
}
Il frame parte correttamente e mi consente di creare il mio grafo e di impostare tutte le opzioni; il problema è che tale frame è composto da 4 pulsanti('clear', 'run', 'step', 'reset') che non funzionano......sto cercando di capire in quale classe vengono creati e perchè non "fungano"!
Voltron è offline   Rispondi citando il messaggio o parte di esso
Old 27-04-2007, 12:07   #10
Voltron
Senior Member
 
Iscritto dal: May 2004
Messaggi: 727
Ho risolto il problema del mancato funzionamento dei pulsanti precedentemente menzionati rendendo 'pubblici' e non 'privati' i campi istanza della classe BellmanFord. Ora l'unico problema è riuscire a visualizzare correttamente la textarea che mostra ad ogni iterazione dell'algoritmo dei messaggi utili all'utente.

ecco uno screenshot che mostra il problema di visualizzazione: http://img143.imageshack.us/my.php?image=algomq4.jpg
Voltron è offline   Rispondi citando il messaggio o parte di esso
Old 27-04-2007, 17:02   #11
Voltron
Senior Member
 
Iscritto dal: May 2004
Messaggi: 727
Qualche "anima pia" .....è in grado di dirmi cosa modificare(penso nelle impostazioni del border-layout) al fine di evitare che il pannello 'Documentation' collocato a 'North' del frame non venga coperto dalla barra del frame??

screenshot esemplificativo del problema: http://img143.imageshack.us/my.php?image=algomq4.jpg

questo è il listato della classe frame:
Quote:
import java.awt.*;

public class BellmanFord extends Frame
{
GraphCanvas graphcanvas;
Options options;
Documentation documentation;
RouteTable routeTable;

public BellmanFord ()
{
super ("BellmanFord");
setSize (300, 300);

graphcanvas = new GraphCanvas(this);
options = new Options(this);
documentation = new Documentation(this);
routeTable = new RouteTable();

setLayout(new BorderLayout(10, 10));
add("Center", graphcanvas);
add("North", documentation);
add("East", options);
add("South", routeTable);
pack();
}

public Insets insets()
{
return new Insets(10, 10, 10, 10);
}

public void lock()
{
graphcanvas.lock();
options.lock();
}

public void unlock()
{
graphcanvas.unlock();
options.unlock();
}

public static void main (String[] args)
{
BellmanFord frame = new BellmanFord ();
frame.setVisible (true);
}
}
qualora dovesse servire, ecco la classe 'Documentation' che genera il pannello collogato a 'north' del frame principale e che và a finire sotto alla barra perimetrale del frame stesso:

Quote:
import java.awt.*;

class Documentation extends Panel
{

Documentation(BellmanFord bellmanford)
{
doctext = new DocText();
grandparent = bellmanford;
docopt = new DocOptions(this, grandparent);
setLayout(new BorderLayout(10, 10));
add("West", docopt);
add("Center", doctext);

}

BellmanFord grandparent;
DocOptions docopt;
DocText doctext;
}
Un grazie anticiato a chiunque avrà la cortesia di aiutarmi ancora.

Ultima modifica di Voltron : 27-04-2007 alle 17:07.
Voltron è offline   Rispondi citando il messaggio o parte di esso
Old 27-04-2007, 17:39   #12
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
1. Prova a togliere il metodo insets() da BellmanFord
2. Non usare AWT .
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 27-04-2007, 21:12   #13
Voltron
Senior Member
 
Iscritto dal: May 2004
Messaggi: 727
Quote:
Originariamente inviato da PGI-Bis Guarda i messaggi
1. Prova a togliere il metodo insets() da BellmanFord
2. Non usare AWT .
Ti ringrazio! Ora è sparito il difetto.

ps: in merito al discorso awt.....bè, quello è stato usato da chi ha creato l'applet originaria.
Voltron è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato Ecovacs Goat O1200 LiDAR Pro: la prova del robot...
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere? Recensione Samsung Galaxy S26+: sfida l'Ultra, m...
Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti Zeekr X e 7X provate: prezzi, autonomia fino a 6...
Marathon: arriva il Fortnite hardcore Marathon: arriva il Fortnite hardcore
HP Imagine 2026: abbiamo visto HP IQ all’opera, ecco cosa può (e non può) fare HP Imagine 2026: abbiamo visto HP IQ all’opera, ...
Le 10 migliori offerte Amazon di Pasqua:...
Nuove fotografie dagli astronauti di Art...
La toilette della capsula Orion Integrit...
GeForce NOW: ecco tutte le novità in arr...
Il Realme 16 5G debutta sul mercato glob...
HONOR svela tre nuovi tablet: il più int...
Tineco Floor One S9 Master: aspira e pul...
Vivo X300 Ultra, il lancio globale è ini...
Offerte robot aspirapolvere Amazon: ECOV...
L'AI genera codice in 8 minuti e i senio...
Ring Intercom Audio a 44,99€ su Amazon: ...
Apple iPhone 16 crolla a 689€: ecco perc...
Google Pixel 9 a 449,90€ con caricatore ...
Ecco la top 7 delle offerte Amazon, aggi...
Ex ingegnere ammette il sabotaggio: migl...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 16:36.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v