Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Wind Tre 'accende' il 5G Standalone in Italia: si apre una nuova era basata sui servizi
Wind Tre 'accende' il 5G Standalone in Italia: si apre una nuova era basata sui servizi
Con la prima rete 5G Standalone attiva in Italia, WINDTRE compie un passo decisivo verso un modello di connettività intelligente che abilita scenari avanzati per imprese e pubbliche amministrazioni, trasformando la rete da infrastruttura a piattaforma per servizi a valore aggiunto
OPPO Find X9 Pro: il camera phone con teleobiettivo da 200MP e batteria da 7500 mAh
OPPO Find X9 Pro: il camera phone con teleobiettivo da 200MP e batteria da 7500 mAh
OPPO Find X9 Pro punta a diventare uno dei riferimenti assoluti nel segmento dei camera phone di fascia alta. Con un teleobiettivo Hasselblad da 200 MP, una batteria al silicio-carbonio da 7500 mAh e un display da 6,78 pollici con cornici ultra ridotte, il nuovo flagship non teme confronti con la concorrenza, e non solo nel comparto fotografico mobile. La dotazione tecnica include il processore MediaTek Dimensity 9500, certificazione IP69 e un sistema di ricarica rapida a 80W
DJI Romo, il robot aspirapolvere tutto trasparente
DJI Romo, il robot aspirapolvere tutto trasparente
Anche DJI entra nel panorama delle aziende che propongono una soluzione per la pulizia di casa, facendo leva sulla propria esperienza legata alla mappatura degli ambienti e all'evitamento di ostacoli maturata nel mondo dei droni. Romo è un robot preciso ed efficace, dal design decisamente originale e unico ma che richiede per questo un costo d'acquisto molto elevato
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 29-12-2005, 10:39   #1
mircok7
Member
 
Iscritto dal: May 2004
Città: provincia Milano
Messaggi: 105
applet in programma java: come si fa?

Buongiorno a tutti,
sarei grato a chinque mi sappia trovare una soluzione:
vorrei inserire un applet scitto in java in una programma java (non quindi in una pagina html); è possibile?
Ci ho provato, creando un'istanza della classe non mi dà problemi, ma appena gli dico di inizializzarmi tale istanza mi dà problemi di NullPointerException.
mircok7 è offline   Rispondi citando il messaggio o parte di esso
Old 29-12-2005, 17:57   #2
franksisca
Senior Member
 
L'Avatar di franksisca
 
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
Un'applet è visualizzabile solo tramite web, quindi ti serve un browser, quindi no, non puoi farlo. SORRY
__________________
My gaming placement
franksisca è offline   Rispondi citando il messaggio o parte di esso
Old 29-12-2005, 21:35   #3
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
un applet è un pannello come tutti gli altri, quindi puoi trattarlo come faresti con un altra istanza di Panel:

mettiamo che l'applet si chiami foopackage.FooApplet:

Codice:
import foopackage.FooApplet;
import javax.swing.*;
import java.awt.*;

public class MyFrame extends JFrame
{
	public MyFrame()
	{
		FooApplet applet = new FooApplet();
		applet.init();
		applet.start();
		setLayout(new BorderLayout());
		getContentPane().add(BorderLayout.CENTER, applet);

		pack();
	}

	public static void main(String args[])
	{
		MyFrame f = new MyFrame();
		f.show();
    }

}

probabilmente dovrai sistemare le dimensioni, perchè quelle quando gira in una pagina web vengono gestite dal browser.
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 30-12-2005, 00:13   #4
franksisca
Senior Member
 
L'Avatar di franksisca
 
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
Quote:
Originariamente inviato da kingv
un applet è un pannello come tutti gli altri, quindi puoi trattarlo come faresti con un altra istanza di Panel:

mettiamo che l'applet si chiami foopackage.FooApplet:

Codice:
import foopackage.FooApplet;
import javax.swing.*;
import java.awt.*;

public class MyFrame extends JFrame
{
	public MyFrame()
	{
		FooApplet applet = new FooApplet();
		applet.init();
		applet.start();
		setLayout(new BorderLayout());
		getContentPane().add(BorderLayout.CENTER, applet);

		pack();
	}

	public static void main(String args[])
	{
		MyFrame f = new MyFrame();
		f.show();
    }

}

probabilmente dovrai sistemare le dimensioni, perchè quelle quando gira in una pagina web vengono gestite dal browser.
ma come fai a mandarmi sempre in crisi, sai che non ci avevo mai provato????
Uffi, comunque come è bello impoarare, GRAZIE KINGV
__________________
My gaming placement
franksisca è offline   Rispondi citando il messaggio o parte di esso
Old 30-12-2005, 01:30   #5
mircok7
Member
 
Iscritto dal: May 2004
Città: provincia Milano
Messaggi: 105
uff non mi funziona

bè innanzitutto grazie per la risposta!
penso che il metodo da te usato sia migliore di come avevo provato inutilmente a fare io,
però purtroppo mi dà ancora errore di puntatore nullo (NullPointerException)...
esattamente in 4 punti:
- at java.applet.Applet.getParameter(Applet.java:168) -> return stub.getParameter(name);
- at javaapplication38.RDFGraph.init(RDFGraph.java:324) ->String edges = getParameter("triples");
- at javaapplication38.Main.<init>(Main.java:21) -> applet.init();
- at javaapplication38.Main.main(Main.java:31) ->Main f = new Main();

per caso sai come mai?
grazie comunque........
mircok7 è offline   Rispondi citando il messaggio o parte di esso
Old 30-12-2005, 10:13   #6
franksisca
Senior Member
 
L'Avatar di franksisca
 
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
posta il codice che vediamo.
__________________
My gaming placement
franksisca è offline   Rispondi citando il messaggio o parte di esso
Old 30-12-2005, 10:36   #7
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
Quote:
Originariamente inviato da mircok7
- at javaapplication38.RDFGraph.init(RDFGraph.java:324) ->String edges = getParameter("triples");

il problema è qui, come sai esiste la possibilità di passare dei parametri dalla pagina html all'applet e di recuperarli dall'applet con getParameter(String).
Il problema è che non esiste un setParameter, per cui lui si aspetta un parametro passato dall'html che tu non hai maniera di valorizzare.
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 30-12-2005, 13:58   #8
mircok7
Member
 
Iscritto dal: May 2004
Città: provincia Milano
Messaggi: 105
grazie ancora per la risposta!
cmq ok...
quindi questo applet non posso utilizzarlo direttamente in un programma java, ma dovrei metterlo in una pagina html...
se no non c'è qualche modo per passargli sti parametri?
(scusatemi ma come avrete capito non sono molto esperto in java)
comunque l'applet che sto cercando di usare è della sun,
lo metto in allegato....
Allegati
File Type: doc Graph.doc (11.3 KB, 0 visite)
mircok7 è offline   Rispondi citando il messaggio o parte di esso
Old 30-12-2005, 14:01   #9
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
Quote:
Originariamente inviato da mircok7
lo metto in allegato....

non ho Word, metteresti un file di testo?
generalmente gli applet di esempio hanno già un main per essere lanciati come applicazioni.
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 30-12-2005, 15:09   #10
mircok7
Member
 
Iscritto dal: May 2004
Città: provincia Milano
Messaggi: 105
guarda purtroppo non ho altri file riguardanti questo applet perchè me lo hanno passato, ma avevo trovato sul sito della sun una pagina in cui c'era proprio tale applet che girava...intanto ti incollo il codice, mentre cerco tale pagina...


import java.util.*;
import java.awt.*;
import java.applet.Applet;
import java.awt.event.*;


class Node {
double x;
double y;

double dx;
double dy;

boolean fixed;

String lbl;
}


class Edge {
int from;
int to;

double len;
}


class GraphPanel extends Panel
implements Runnable, MouseListener, MouseMotionListener {
Graph graph;
int nnodes;
Node nodes[] = new Node[100];

int nedges;
Edge edges[] = new Edge[200];

Thread relaxer;
boolean stress;
boolean random;

GraphPanel(Graph graph) {
this.graph = graph;
addMouseListener(this);
}

int findNode(String lbl) {
for (int i = 0 ; i < nnodes ; i++) {
if (nodes[i].lbl.equals(lbl)) {
return i;
}
}
return addNode(lbl);
}
int addNode(String lbl) {
Node n = new Node();
n.x = 10 + 380*Math.random();
n.y = 10 + 380*Math.random();
n.lbl = lbl;
nodes[nnodes] = n;
return nnodes++;
}
void addEdge(String from, String to, int len) {
Edge e = new Edge();
e.from = findNode(from);
e.to = findNode(to);
e.len = len;
edges[nedges++] = e;
}

public void run() {
Thread me = Thread.currentThread();
while (relaxer == me) {
relax();
if (random && (Math.random() < 0.03)) {
Node n = nodes[(int)(Math.random() * nnodes)];
if (!n.fixed) {
n.x += 100*Math.random() - 50;
n.y += 100*Math.random() - 50;
}
graph.play(graph.getCodeBase(), "audio/drip.au");
}
try {
Thread.sleep(100);
} catch (InterruptedException e) {
break;
}
}
}

synchronized void relax() {
for (int i = 0 ; i < nedges ; i++) {
Edge e = edges[i];
double vx = nodes[e.to].x - nodes[e.from].x;
double vy = nodes[e.to].y - nodes[e.from].y;
double len = Math.sqrt(vx * vx + vy * vy);
len = (len == 0) ? .0001 : len;
double f = (edges[i].len - len) / (len * 3);
double dx = f * vx;
double dy = f * vy;

nodes[e.to].dx += dx;
nodes[e.to].dy += dy;
nodes[e.from].dx += -dx;
nodes[e.from].dy += -dy;
}

for (int i = 0 ; i < nnodes ; i++) {
Node n1 = nodes[i];
double dx = 0;
double dy = 0;

for (int j = 0 ; j < nnodes ; j++) {
if (i == j) {
continue;
}
Node n2 = nodes[j];
double vx = n1.x - n2.x;
double vy = n1.y - n2.y;
double len = vx * vx + vy * vy;
if (len == 0) {
dx += Math.random();
dy += Math.random();
} else if (len < 100*100) {
dx += vx / len;
dy += vy / len;
}
}
double dlen = dx * dx + dy * dy;
if (dlen > 0) {
dlen = Math.sqrt(dlen) / 2;
n1.dx += dx / dlen;
n1.dy += dy / dlen;
}
}

Dimension d = getSize();
for (int i = 0 ; i < nnodes ; i++) {
Node n = nodes[i];
if (!n.fixed) {
n.x += Math.max(-5, Math.min(5, n.dx));
n.y += Math.max(-5, Math.min(5, n.dy));
}
if (n.x < 0) {
n.x = 0;
} else if (n.x > d.width) {
n.x = d.width;
}
if (n.y < 0) {
n.y = 0;
} else if (n.y > d.height) {
n.y = d.height;
}
n.dx /= 2;
n.dy /= 2;
}
repaint();
}

Node pick;
boolean pickfixed;
Image offscreen;
Dimension offscreensize;
Graphics offgraphics;

final Color fixedColor = Color.red;
final Color selectColor = Color.pink;
final Color edgeColor = Color.black;
final Color nodeColor = new Color(250, 220, 100);
final Color stressColor = Color.darkGray;
final Color arcColor1 = Color.black;
final Color arcColor2 = Color.pink;
final Color arcColor3 = Color.red;

public void paintNode(Graphics g, Node n, FontMetrics fm) {
int x = (int)n.x;
int y = (int)n.y;
g.setColor((n == pick) ? selectColor : (n.fixed ? fixedColor : nodeColor));
int w = fm.stringWidth(n.lbl) + 10;
int h = fm.getHeight() + 4;
g.fillRect(x - w/2, y - h / 2, w, h);
g.setColor(Color.black);
g.drawRect(x - w/2, y - h / 2, w-1, h-1);
g.drawString(n.lbl, x - (w-10)/2, (y - (h-4)/2) + fm.getAscent());
}

public synchronized void update(Graphics g) {
Dimension d = getSize();
if ((offscreen == null) || (d.width != offscreensize.width) || (d.height != offscreensize.height)) {
offscreen = createImage(d.width, d.height);
offscreensize = d;
if (offgraphics != null) {
offgraphics.dispose();
}
offgraphics = offscreen.getGraphics();
offgraphics.setFont(getFont());
}

offgraphics.setColor(getBackground());
offgraphics.fillRect(0, 0, d.width, d.height);
for (int i = 0 ; i < nedges ; i++) {
Edge e = edges[i];
int x1 = (int)nodes[e.from].x;
int y1 = (int)nodes[e.from].y;
int x2 = (int)nodes[e.to].x;
int y2 = (int)nodes[e.to].y;
int len = (int)Math.abs(Math.sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2)) - e.len);
offgraphics.setColor((len < 10) ? arcColor1 : (len < 20 ? arcColor2 : arcColor3)) ;
offgraphics.drawLine(x1, y1, x2, y2);
if (stress) {
String lbl = String.valueOf(len);
offgraphics.setColor(stressColor);
offgraphics.drawString(lbl, x1 + (x2-x1)/2, y1 + (y2-y1)/2);
offgraphics.setColor(edgeColor);
}
}

FontMetrics fm = offgraphics.getFontMetrics();
for (int i = 0 ; i < nnodes ; i++) {
paintNode(offgraphics, nodes[i], fm);
}
g.drawImage(offscreen, 0, 0, null);
}

//1.1 event handling
public void mouseClicked(MouseEvent e) {
}

public void mousePressed(MouseEvent e) {
addMouseMotionListener(this);
double bestdist = Double.MAX_VALUE;
int x = e.getX();
int y = e.getY();
for (int i = 0 ; i < nnodes ; i++) {
Node n = nodes[i];
double dist = (n.x - x) * (n.x - x) + (n.y - y) * (n.y - y);
if (dist < bestdist) {
pick = n;
bestdist = dist;
}
}
pickfixed = pick.fixed;
pick.fixed = true;
pick.x = x;
pick.y = y;
repaint();
e.consume();
}

public void mouseReleased(MouseEvent e) {
removeMouseMotionListener(this);
if (pick != null) {
pick.x = e.getX();
pick.y = e.getY();
pick.fixed = pickfixed;
pick = null;
}
repaint();
e.consume();
}

public void mouseEntered(MouseEvent e) {
}

public void mouseExited(MouseEvent e) {
}

public void mouseDragged(MouseEvent e) {
pick.x = e.getX();
pick.y = e.getY();
repaint();
e.consume();
}

public void mouseMoved(MouseEvent e) {
}

public void start() {
relaxer = new Thread(this);
relaxer.start();
}

public void stop() {
relaxer = null;
}

}


public class Graph extends Applet implements ActionListener, ItemListener {

GraphPanel panel;
Panel controlPanel;

Button scramble = new Button("Scramble");
Button shake = new Button("Shake");
Checkbox stress = new Checkbox("Stress");
Checkbox random = new Checkbox("Random");

public void init() {
setLayout(new BorderLayout());

panel = new GraphPanel(this);
add("Center", panel);
controlPanel = new Panel();
add("South", controlPanel);

controlPanel.add(scramble); scramble.addActionListener(this);
controlPanel.add(shake); shake.addActionListener(this);
controlPanel.add(stress); stress.addItemListener(this);
controlPanel.add(random); random.addItemListener(this);

String edges = getParameter("edges");
for (StringTokenizer t = new StringTokenizer(edges, ",") ; t.hasMoreTokens() ; ) {
String str = t.nextToken();
int i = str.indexOf('-');
if (i > 0) {
int len = 50;
int j = str.indexOf('/');
if (j > 0) {
len = Integer.valueOf(str.substring(j+1)).intValue();
str = str.substring(0, j);
}
panel.addEdge(str.substring(0,i), str.substring(i+1), len);
}
}
Dimension d = getSize();
String center = getParameter("center");
if (center != null){
Node n = panel.nodes[panel.findNode(center)];
n.x = d.width / 2;
n.y = d.height / 2;
n.fixed = true;
}
}

public void destroy() {
remove(panel);
remove(controlPanel);
}

public void start() {
panel.start();
}

public void stop() {
panel.stop();
}

public void actionPerformed(ActionEvent e) {
Object src = e.getSource();

if (src == scramble) {
play(getCodeBase(), "audio/computer.au");
Dimension d = getSize();
for (int i = 0 ; i < panel.nnodes ; i++) {
Node n = panel.nodes[i];
if (!n.fixed) {
n.x = 10 + (d.width-20)*Math.random();
n.y = 10 + (d.height-20)*Math.random();
}
}
return;
}

if (src == shake) {
play(getCodeBase(), "audio/gong.au");
Dimension d = getSize();
for (int i = 0 ; i < panel.nnodes ; i++) {
Node n = panel.nodes[i];
if (!n.fixed) {
n.x += 80*Math.random() - 40;
n.y += 80*Math.random() - 40;
}
}
}

}

public void itemStateChanged(ItemEvent e) {
Object src = e.getSource();
boolean on = e.getStateChange() == ItemEvent.SELECTED;
if (src == stress) panel.stress = on;
else if (src == random) panel.random = on;
}

public String getAppletInfo() {
return "Title: GraphLayout \nAuthor: <unknown>";
}

public String[][] getParameterInfo() {
String[][] info = {
{"edges", "delimited string", "A comma-delimited list of all the edges. It takes the form of 'C-N1,C-N2,C-N3,C-NX,N1-N2/M12,N2-N3/M23,N3-NX/M3X,...' where C is the name of center node (see 'center' parameter) and NX is a node attached to the center node. For the edges connecting nodes to eachother (and not to the center node) you may (optionally) specify a length MXY separated from the edge name by a forward slash."},
{"center", "string", "The name of the center node."}
};
return info;
}

}
mircok7 è offline   Rispondi citando il messaggio o parte di esso
Old 30-12-2005, 15:49   #11
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
Ho modificato aggiungendo un metodo main che ti permette di eseguirlo come applicazione.
Ho sostituito anche i parametri che andavano in errore cablando a codice i valori che usava negli esempi (righe 381 e 397).

dovrebbe funzionare.
Allegati
File Type: txt Graph.txt (12.2 KB, 1 visite)
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 30-12-2005, 15:56   #12
mircok7
Member
 
Iscritto dal: May 2004
Città: provincia Milano
Messaggi: 105
grazie mille!
gentilissimo!
lo provo subito
(cmq il sito su cui l'ho trovato in funzione è http://www.gg.caltech.edu/~dhl/java/test/graph/graph.html)!
grazie!!
mircok7 è offline   Rispondi citando il messaggio o parte di esso
Old 30-12-2005, 16:03   #13
mircok7
Member
 
Iscritto dal: May 2004
Città: provincia Milano
Messaggi: 105
Grande funziona benissimo!
grazie!
mircok7 è offline   Rispondi citando il messaggio o parte di esso
Old 30-12-2005, 16:06   #14
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
Quote:
Originariamente inviato da mircok7
Grande funziona benissimo!
grazie!
bene
kingv è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Wind Tre 'accende' il 5G Standalone in Italia: si apre una nuova era basata sui servizi Wind Tre 'accende' il 5G Standalone in Italia: s...
OPPO Find X9 Pro: il camera phone con teleobiettivo da 200MP e batteria da 7500 mAh OPPO Find X9 Pro: il camera phone con teleobiett...
DJI Romo, il robot aspirapolvere tutto trasparente DJI Romo, il robot aspirapolvere tutto trasparen...
DJI Osmo Nano: la piccola fotocamera alla prova sul campo DJI Osmo Nano: la piccola fotocamera alla prova ...
FUJIFILM X-T30 III, la nuova mirrorless compatta FUJIFILM X-T30 III, la nuova mirrorless compatta
Cresce il divario tra dispositivi elettr...
La missione con equipaggio Shenzhou-21 h...
Il Galaxy S26 Edge potrebbe essere ancor...
Google riaccenderà una centrale n...
Crollo per Pornhub nel Regno Unito:-77% ...
La Germania accende il suo cannone laser...
Il meglio di Amazon in 2 minuti: tira ar...
ECOVACS risponde a Eureka e dimezza il p...
Durissimo colpo per Nintendo: l'ufficio ...
Scope elettriche al minimo storico su Am...
Blue Jay e Project Eluna: robotica e AI ...
Scede a 949€ il Samsung Galaxy S25 Ultra...
Blue Yeti Nano in super offerta su Amazo...
Netflix sta preparando un'offerta per Wa...
Prezzo impossibile, è sceso ancor...
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: 09:10.


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