Torna indietro   Hardware Upgrade Forum > Software > Programmazione

 Hisense 55U7SE: tuttofare e accessibile, il MiniLED per film, sport e gioco
Hisense 55U7SE: tuttofare e accessibile, il MiniLED per film, sport e gioco
MiniLED di fascia media con local dimming a 192 zone, 144 Hz nativi e audio firmato Devialet. La prova strumentale riscontra colori affidabili e gaming reattivo, per un prodotto molto accessibile e convincente. Ma la soundbar aggiuntiva è quasi d'obbligo
Kindle Scribe Colorsoft: riduce le cornici e diventa a colori, ma il prezzo è alto
Kindle Scribe Colorsoft: riduce le cornici e diventa a colori, ma il prezzo è alto
Amazon porta i colori sul suo Kindle da scrittura più grande: schermo Colorsoft a 11 pollici, processore quad-core, penna premium più reattiva e strumenti IA per le note, sono le note salienti. Il salto di prezzo rispetto al modello in bianco e nero si fa sentire, anche se la percezione è quella di trovarsi di fronte a un prodotto di fascia altissima, per veri appassionati
L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint
L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint
Abbiamo intervistato Sumit Dhawan, CEO di Proofpoint, per capire come stia cambiando il mondo della sicurezza con l'avvento dell'intelligenza artificiale e con il ritmo sempre più serrato a cui vengono trovate vulnerabilità nel software. Un problema significativo, che richiederà del tempo per essere risolto (o quantomeno arginato)
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
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, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
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
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, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
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


 Hisense 55U7SE: tuttofare e accessibile, il MiniLED per film, sport e gioco Hisense 55U7SE: tuttofare e accessibile, il Min...
Kindle Scribe Colorsoft: riduce le cornici e diventa a colori, ma il prezzo è alto Kindle Scribe Colorsoft: riduce le cornici e div...
L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint L'IA cambia tutte le regole della sicurezza tra ...
L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026 L'Europa conta nella tecnologia e può ess...
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più Dreame X60 Pro Ultra Complete: i bracci si esten...
Google condannata in Svezia: dovrà...
Samsung Foundry aggiorna la roadmap: il ...
La Cina risponde a NVIDIA con LongCat-2....
Godox C100: la prima fotocamera del marc...
Boom IA e affitti fuori controllo: chi l...
Le RTX 5000 abbattono il muro dei 4 GHz,...
Onimusha: Way of the Sword non sar&agrav...
Anche Microsoft anticipa al 2029 il pass...
Sei falle in AirDrop e Quick Share: cras...
Altri tagli in arrivo in casa XBOX: a ri...
Quando l'IA entra nei processi: due part...
La contea con più data center del...
Galaxy Ring 2, Samsung conferma lo svilu...
1TB e velocità di scrittura garan...
Volkswagen apre alla produzione europea ...
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: 21:32.


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