Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Cineca inaugura Pitagora, il supercomputer Lenovo per la ricerca sulla fusione nucleare
Cineca inaugura Pitagora, il supercomputer Lenovo per la ricerca sulla fusione nucleare
Realizzato da Lenovo e installato presso il Cineca di Casalecchio di Reno, Pitagora offre circa 44 PFlop/s di potenza di calcolo ed è dedicato alla simulazione della fisica del plasma e allo studio dei materiali avanzati per la fusione, integrandosi nell’ecosistema del Tecnopolo di Bologna come infrastruttura strategica finanziata da EUROfusion e gestita in collaborazione con ENEA
Mova Z60 Ultra Roller Complete: pulisce bene grazie anche all'IA
Mova Z60 Ultra Roller Complete: pulisce bene grazie anche all'IA
Rullo di lavaggio dei pavimenti abbinato a un potente motore da 28.000 Pa e a bracci esterni che si estendono: queste, e molte altre, le caratteristiche tecniche di Z60 Ultra Roller Complete, l'ultimo robot di Mova che pulisce secondo le nostre preferenze oppure lasciando far tutto alla ricca logica di intelligenza artificiale integrata
Renault Twingo E-Tech Electric: che prezzo!
Renault Twingo E-Tech Electric: che prezzo!
Renault annuncia la nuova vettura compatta del segmento A, che strizza l'occhio alla tradizione del modello abbinandovi una motorizzazione completamente elettrica e caratteristiche ideali per i tragitti urbani. Renault Twingo E-Tech Electric punta su abitabilità, per una lunghezza di meno di 3,8 metri, abbinata a un prezzo di lancio senza incentivi di 20.000€
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


Cineca inaugura Pitagora, il supercomputer Lenovo per la ricerca sulla fusione nucleare Cineca inaugura Pitagora, il supercomputer Lenov...
Mova Z60 Ultra Roller Complete: pulisce bene grazie anche all'IA Mova Z60 Ultra Roller Complete: pulisce bene gra...
Renault Twingo E-Tech Electric: che prezzo! Renault Twingo E-Tech Electric: che prezzo!
Il cuore digitale di F1 a Biggin Hill: l'infrastruttura Lenovo dietro la produzione media Il cuore digitale di F1 a Biggin Hill: l'infrast...
DJI Osmo Mobile 8: lo stabilizzatore per smartphone con tracking multiplo e asta telescopica DJI Osmo Mobile 8: lo stabilizzatore per smartph...
Lo compri una volta, lo giochi dove vuoi...
Qiantinuum annuncia Helios, "il com...
Samsung Galaxy S26 Ultra: una sola novit...
Google prepara Gemini 3 Pro e Nano Banan...
TVS non è solo moto e scooter: ec...
Alexa+ arriva su BMW: gli automobilisti ...
Gemini Deep Research arriva su Google Fi...
Rinvii a catena, Marvel 1943: Rise of Hy...
Xiaomi inaugura uno spazio dedicato ai f...
Rilasciate le specifiche di Bluetooth 6....
L'obiettivo che mette tutto a fuoco: la ...
Meta avrebbe raccolto fino al 10% dei ri...
NVIDIA DGX Spark e videogiochi? Una pess...
Serie Oppo Reno15 confermata: arriva il ...
UPDF 2025: l'editor PDF che fa (quasi) t...
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: 01:45.


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