PDA

View Full Version : bordi JAva


Pro7on
06-06-2007, 08:52
http://java.sun.com/docs/books/tutorial/uiswing/components/border.html

come faccio a fare quei bordi a onda?

mi da errore nel Icon

andbin
06-06-2007, 09:08
http://java.sun.com/docs/books/tutorial/uiswing/components/border.html

come faccio a fare quei bordi a onda?

mi da errore nel IconCioè? Continui a fare domande che si potrebbero risolvere facilmente se 1) leggessi bene e meglio la documentazione di Java e 2) spiegassi meglio il problema.

BorderFactory.createMatteBorder si aspetta 4 int e un Icon (o un Color per l'altra versione in overload). Quindi crei un ImageIcon e glielo passi. Poi il Border ottenuto (che tecnicamente è un MatteBorder ma è comunque un Border) lo passi a setBorder del tuo componente.

Pro7on
06-06-2007, 09:21
:O mmmm

ma e che o provato e nn funzionava tutto qui, l'inglese nn lo capisco quindi faccio un po di fatica,
cmq pensavo che le onde erano predefinite....

ciaociao

andbin
06-06-2007, 09:28
ma e che o provato e nn funzionava tutto qui, l'inglese nn lo capisco quindi faccio un po di fatica,
cmq pensavo che le onde erano predefinite....Predefinite no, devi creare tu una immagine gif/jpeg ecc... quindi caricarla e passare il Icon al metodo.

Per la questione dell'inglese ... è un altro paio di maniche, come si dice .... la documentazione tecnica migliore è solo in inglese, quindi un minimo di inglese tecnico ci vuole ... non dico che uno debba essere un provetto traduttore!

Pro7on
06-06-2007, 10:02
Predefinite no, devi creare tu una immagine gif/jpeg ecc... quindi caricarla e passare il Icon al metodo.

Per la questione dell'inglese ... è un altro paio di maniche, come si dice .... la documentazione tecnica migliore è solo in inglese, quindi un minimo di inglese tecnico ci vuole ... non dico che uno debba essere un provetto traduttore!

ma si quello si.... vabbe :?:

PGI-Bis
06-06-2007, 11:37
ma e che o provato e nn funzionava tutto qui, l'inglese nn lo capisco quindi faccio un po di fatica,
cmq pensavo che le onde erano predefinite....

E' tutto ok, nel senso che è normalissimo avere qualche problema ad interpretare sia la documentazione, che è uno scritto piuttosto tecnico e di non facile interpretazione, sia i cosidetti tutorial, che per ragioni di sintesi spesso presuppongono più di quanto non spieghino.

Ti incollo un esempio di "MatteBorder" che usa l'immagine allegata.

import java.awt.*;
import java.awt.event.*;
import java.net.*;
import javax.swing.*;
import javax.swing.border.*;

public class Main {

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

private static void start() {
URL percorsoRelativoImmagine = Main.class.getResource("/onde.png");
if(percorsoRelativoImmagine == null) {
JOptionPane.showMessageDialog(null, "Non trovo l'immagine onde.png");
} else {
creaInterfaccia(percorsoRelativoImmagine);
}
}

private static void creaInterfaccia(URL percorsoFileImmagine) {
ImageIcon immagineComeIcona = new ImageIcon(percorsoFileImmagine);
Border bordoAOnde = BorderFactory.createMatteBorder(
-1, -1, -1, -1, immagineComeIcona);
JPanel pannelloConBordo = new JPanel();
pannelloConBordo.setBorder(bordoAOnde);
Dimension dimensionePredefinitaPannello = new Dimension(200, 200);
pannelloConBordo.setPreferredSize(dimensionePredefinitaPannello);
JFrame finestra = new JFrame("MatteBorder Sample");
finestra.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
finestra.add(pannelloConBordo);
finestra.pack();
finestra.setVisible(true);
}
}

Il file "onde.png" deve essere salvato nella stessa cartella in cui si trova il file Main.class (prodotto dalla compilazione con javac del file sorgente Main.java). Se hai domande dubbi o curiosità sul codice incollato non esitare a chiedere.

Per inciso, è mia modestissima opinione che la risposta "leggi la documentazione" sia non solo inutile ma anche inelegante.

Pro7on
06-06-2007, 14:35
Grazie Mille ;)

andbin
06-06-2007, 16:37
Per inciso, è mia modestissima opinione che la risposta "leggi la documentazione" sia non solo inutile ma anche inelegante.La mia risposta non voleva assolutamente "suonare" come un "leggi la documentazione e non rompere!".
Semmai era un invito a documentarsi meglio e a spiegarsi meglio .... dire solo "mi da errore nel Icon" infatti non aiuta me o altri a capire dove è realmente il problema.

Premesso questo, se la mia risposta è stata anche solamente recepita come inadatta o inelegante, chiedo naturalmente scusa.