Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Panasonic 55Z95BEG cala gli assi: pannello Tandem e audio senza compromessi
Panasonic 55Z95BEG cala gli assi: pannello Tandem e audio senza compromessi
Con un prezzo di 2.999 euro, il Panasonic Z95BEG entra nella fascia ultra-premium dei TV OLED: pannello Primary RGB Tandem, sistema di raffreddamento ThermalFlow, audio Technics integrato e funzioni gaming avanzate lo pongono come un punto di riferimento
HONOR Magic V5: il pieghevole ultra sottile e completo! La recensione
HONOR Magic V5: il pieghevole ultra sottile e completo! La recensione
Abbiamo provato per diverse settimane il nuovo Magic V5 di HONOR, uno smartphone pieghevole che ci ha davvero stupito. Il device è il più sottile (solo 4.1mm) ma non gli manca praticamente nulla. Potenza garantita dallo Snapdragon 8 Elite, fotocamere di ottima qualità e batteria in silicio-carbonio che garantisce un'ottima autonomia. E il Prezzo? Vi diciamo tutto nella nostra recensione completa.
Recensione Google Pixel 10 Pro XL: uno zoom 100x assurdo sempre in tasca (e molto altro)
Recensione Google Pixel 10 Pro XL: uno zoom 100x assurdo sempre in tasca (e molto altro)
Google Pixel 10 Pro XL è il top di gamma della serie Pixel, presentando un ampio display Super Actua da 6.8 pollici insieme alle novità della serie, fra cui la ricarica wireless magnetica Pixelsnap e le nuove funzionalità AI avanzate. Il comparto fotografico include un sistema a tripla fotocamera con zoom Pro Res fino a 100x, mentre il processore Tensor G5 con 16GB di RAM garantisce prestazioni percepite molto elevate su Android.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 29-12-2005, 09: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, 16: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, 20: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 29-12-2005, 23: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, 00: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, 09: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, 09: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, 12: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, 13: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, 14: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, 14: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, 14: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, 15: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, 15: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


Panasonic 55Z95BEG cala gli assi: pannello Tandem e audio senza compromessi Panasonic 55Z95BEG cala gli assi: pannello Tande...
HONOR Magic V5: il pieghevole ultra sottile e completo! La recensione HONOR Magic V5: il pieghevole ultra sottile e co...
Recensione Google Pixel 10 Pro XL: uno zoom 100x assurdo sempre in tasca (e molto altro) Recensione Google Pixel 10 Pro XL: uno zoom 100x...
Lenovo IdeaPad Slim 3: un notebook Snapdragon X economico Lenovo IdeaPad Slim 3: un notebook Snapdragon X ...
Recensione OnePlus Watch 3 43mm: lo smartwatch che mancava per i polsi più piccoli Recensione OnePlus Watch 3 43mm: lo smartwatch c...
Mega parco agrivoltaico in provincia di ...
Anthropic lancia Claude Code web: &egrav...
Dalla RTX 5060 alla RTX 5090: MSI sconta...
Samsung ViewFinity S8: 5 pollici in pi&u...
Jaecoo 5 arriva in Italia, benzina o ele...
Audi Concept C: a Milano debutta il nuov...
Google Pixel 10a: poche novità ri...
Call of Duty diventerà un film: &...
34 offerte Amazon con prezzi da sottocos...
iPhone 16 Pro Max ora a 1.199€ su Amazon...
Apple aggiornerà iPhone 12 in tut...
Anche la prima moto elettrica di Honda &...
389€ o 449€: ecco i migliori portatili t...
NVIDIA schiaccia AMD: 94% di quota nel m...
GeForce RTX 5070 Ti da 16 GB a 839€ su A...
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: 11:22.


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