Newsgroup: it.comp.java
Titolo: Librerie java.awt* e Linux

Ciao a tutti, sto studiando java su un manuale della Apogeo ed ho installato
J2sdk 1.4.1 su Linux.
Alla settima lezione, mi trovo da creare la prima applet, che richiama le
librerie java.awt*. Se non ho capito male, queste però sono riferite a
Windows, infatti il compilatore si pianta.Che libreria posso scaricare in
sostituzione, che supporti le stesse funzioni, per Linux? Su internet non ho
trovato nulla e sul sito della Sun non saprei cosa scaricare tra tutte le
varie opzioni.
Grazie per i suggerimenti

 ha scritto nel messaggio
news:zLTNa.150231$Ny5.4...@twister2.libero.it...

Io sono un profano di Java ma ho sempre sentito dire che Java è buono perchè
è indipenente dalla piattaforma su cui gira, allora mi chiedo se un
programmatore deve sbattersi per cercare le librerie per Windows o per Linux
tanto vale restare con i vecchi linguaggi tanto cmq c'è bisogno di
ricompilare il progetto e nella maggior parte dei casi di apportare
cambiamenti al codice.

 casi di apportare cambiamenti al codice.
La portabilità non è l'unico vantaggio di Java rispetto ai "vecchi
linguaggi" (anche se dovresti specificare quali...), cmq basta usare Swing
invece di awt.
HTH,
--
Andrea /\/\agni
ICQ#: 174108000

Ma come includo swing? L'applet di esempio riporta l'inclusione della
libreria scrivendo "import java.awt*"
In seguito deriva una classe con l'istruzione "public class MiaClasse
extends javax.swing.JApplet".
Purtroppo ho l'impressione che nel manuale diano per scontato che tutti
programmino in ambiente Microsoft, tralasciando le istruzioni alternative
per altri sistemi.Se hai pazienza di darmi una mano ti ringrazio, sto
mettendo su un sito su Tomcat-Apache e dovrò anche trastullarmi con
connettori e quant'altro.
Un grazie anticipato

 Un grazie anticipato
 le librerie java.awt.* funzionano su Linux, windows, solaris , mac etc
 le librerie javax.swing.* sono piů avanzate e piů belle.
Per le prime usi Frame mentre per le swing JFrame e cosi via.
L'ambiente Microsoft non c'entra niente io uso Linux per tutto.
AWT non č sinonimo di Windows(Microsoft) ma significa Abstract Window
Toolkit.
Vai tranquillo.
Rigel
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

Ah, mi hai tolto un peso dal cuore.Nel frattempo ho ravanato un pò su
internet e l'unica cosa che ho capito è che queste librerire alle volte
danno dei problemi con l'interfaccia grafica X.
Mi viene il dubbio di non avere installato correttamente il sw.Io ho Red Hat
9 ed ho installato la J2sdk 1.4.1.Devo installare qualcos'altro?Come si
chiama esattamente questa libreria?Sotto la cartella lib ho trovato solo
java.tool.
Tra l'altro, finora ho sempre lavorato in testuale, senza avviare il server
grafico.Devo avviare la grafica ed aprirmi la console da li per poter
visualizzare le applet?
Scusa se aprofitto, ma il manuale è decisamente windows oriented

 Scusa se aprofitto, ma il manuale è decisamente windows oriented
Quale manuale?
le librerie sono sotto jre (runtime) inoltre vi è anche l'appletviewer
sotto
java/bin dove trovi anche gli altri comandi.
l'applet lo puoi vedere anche da un browser ma deve essere inserito dentro
una
pagina html.
Ti consiglio un buon libro su Java e tutto ti apparirà limpido.
auguri
ciao


La Guida completa di Apogeo.
In realtą spiegava che bastava installare j2sdk, settare le variabili
d'ambiente e stop.
Cmq ho guardato nella directory j2sdk ed ho visto che c'era un file
"src.zip".L'ho decompresso ed ecco che sbucano fuori varie cartelle, tra cui
awt, java, javax, tutte contenenti file .java.Ho provato a copiare la
cartella javax, che contiene la cartella swing dentro la directory del
sorgente che richiamava la libreria.
Continua a dare lo stesso errore.
Il punto č: quando inserisco la direttiva "import file", il file dove devo
collocarlo ed in che formato?Magari č una domanda stupida, ma almeno ne
vengo a capo.



Cosa significa che il compilatore si pianta? Riporta che errori ti
produce.
Non dovresti avere problemi di portabilita': le AWT sono multipiattaforma.
Piuttosto prova ad aggiornare il tuo SDK: se la versione e' proprio 1.4.1
(cioe' la prima della serie 1.4.1), mi pare di ricordare che soffrisse di
alcune carenze implementative proprio nell'area dell'interfaccia grafica,
in particolare per l'ambiente Linux. Pero' non erano problemi in
compilazione, ma in esecuzione. Se il problema e' questo, passa ad una
delle update release successive (mi pare che l'ultima sia la 1.4.1_03) o
la nuovissima 1.4.2.
-- 
Lucio Benfante - Java User Group Padova
Brainbench MVP for Java 1
http://www.brainbench.com
MyTranscript: 
http://www.brainbench.com/transcript.jsp?pid=167064

Non trova le librerie java.awt*. Ecco le prime righe di codice:
import java.awt.*;
import java.util.*;
public class NewWatch extends javax.swing.JApplet {.....
Infatti non riesce a creare la classe NewWatch perchč considera il tipo
javax.swing.JApplet sconosciuto.
Come dicevo, ho trovato le directory con i files .java.Come devo linkarle?
e' giusto che si trovino in questo formato?



Quei files dovrebbero trovarsi in src.zip, che non va decompresso.
...quindi se non trova javax.swing.JApplet non c'entra molto con awt, ma
con swing, non credi?
In ogni caso, dovrebbe trovare quella classe: il nome ed il package e'
giusto.
Ripeto: perche' non posti l'errore che ti da' (tu hai postato solo
il codice che credi generi l'errore).
Molto spesso all'inizio i problemi sorgono dall'errata interpretazione
dell'errore.


 vengo a capo.
Guarda che non devi decomprimere niente, ne copiare.
Per un sempice applet devi solo :
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class CiaoPanel extends JPanel {
   public void paintComponent(Graphics g)
      { super.paintComponent(g);
        g.drawString("Ciao",75,100);
       }
      }
public class CiaoApplet extends JApplet {
      public void init() 
       { Container contentPane = getContentPane();
         contentPane.add(new CiaoPanel());


Artemide ha scritto:
 prova anche questo
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import javax.swing.*;
public class TestBottone extends JApplet {
  boolean isStandalone = false;
  JPanel jPanel1 = new JPanel();
  BorderLayout borderLayout1 = new BorderLayout();
  JButton jButton1 = new JButton();
  /**Get a parameter value*/
  public String getParameter(String key, String def) {
    return isStandalone ? System.getProperty(key, def) :
      (getParameter(key) != null ? getParameter(key) : def);
  }
  /**Construct the applet*/
  public TestBottone() {
  }
  /**Initialize the applet*/
  public void init() {
    try {
      jbInit();
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }
  /**Component initialization*/
  private void jbInit() throws Exception {
    this.setSize(new Dimension(400,300));
    this.getContentPane().setLayout(borderLayout1);
    jButton1.setText("jButton1");
    this.getContentPane().add(jPanel1, BorderLayout.CENTER);
    jPanel1.add(jButton1, null);
  }
  /**Get Applet information*/
  public String getAppletInfo() {
    return "Applet Information";
  }
  /**Get parameter info*/
  public String[][] getParameterInfo() {
    return null;
  }
  //static initializer for setting look & feel
  static {
    try {
 
//UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
 
//UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
    }
    catch(Exception e) {


 e' giusto che si trovino in questo formato?
Non si linkano!!! (Non stiamo parlando di C o C++) Quelli sono sorgenti che
NON servono a ricompilare la JVM ma ti vengono forniti come reference per
capire il meccanismo interno della JVM e come sono state implementate certe
classi.
Saluti
Rosario Ianuale
--
P.s.: se vuoi continuare la discussione... puoi farlo qui o meglio
ancora, se preferisci, sul server CHAT di azzurra: 
libero.azzurra.org
6667-6669
nel canale #java_it dove credo dissolverai quella nebbia scura in cui
stai viaggiando.

Sto usando j2sdk1.4.1 su Red Hat9.
Quindi era corretto che il file src.zip fosse lě ed in quel formato.
Adesso ho provato su una Slackware 9 con una versione 1.3.1_08 e non mi
ha
dato errori di compilazione, ma di esecuzione.Ho visto che il source
delle
librerie č in formato .jar
A questo punto vi posto il codice, non vorrei che ci fosse qualche 
bacherozzo in questo esempio (del libro).
import java.awt.*;
import java.util.*;
public class NewWatch extends javax.swing.JApplet {
    private Color butterscotch = new Color(255, 204, 102);
    private String lastTime = "";
    Color back;
    public void init() {
        String in = getParameter("background");
        back = Color.black;
        if (in != null) {
            try {
                back = Color.decode(in);
            } catch (NumberFormatException e) {
                showStatus("Bad parameter " + in);
            }
        }
        setBackground(back);
    }
    public void paint(Graphics screen) {
        Graphics2D screen2D = (Graphics2D)screen;
        Font type = new Font("Monospaced", Font.BOLD, 20);
        screen2D.setFont(type);
        GregorianCalendar day = new GregorianCalendar();
        String time = day.getTime().toString();
        screen2D.setColor(back);
        screen2D.drawString(lastTime, 5, 25);
        screen2D.setColor(butterscotch);
        screen2D.drawString(time, 5, 25);
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            // do nothing
        }
        lastTime = time;
        repaint();
    }
}
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 import java.util.*;



Da me funziona. Linux SuSE 8.2


 librerie č in formato .jar
...il source e' un po' difficile...magari la libreria compilata, cioe' il
jar, che non e' altro che un file in formato zip, contiene i .class.


 Ho visto che il source delle librerie č in formato .jar
Quelli *non* sono source... ma bytecode!
Saluti
R.I.

Siete gentilissimi.Ecco l'errore copiato pedestremente:
NewWatch.java:4: Superclass `javax.swing.JApplet' of class `NewWatch' 
not found.   public class NewWatch extends javax.swing.JApplet {
                                              ^
1 error
Avendo un modem a 56k scaricarmi un'altra release non mi è
possibile,quindi
se riusciamo a risolvere con questa, bene, altrimenti dovrò rassegnarmi
a
lavorare con W2000.
Un grazie di cuore a tutti.


 in sostituzione, che supporti le stesse funzioni, per Linux?
E' strano che ti si pianti, in quanto le awt dipendono dalla piattaforma
in fase di esecuzione, cioè, se sei su Windows la finestra avrà certi
bottoni, se sei su Linux ne avrà altri. Ma in fase di compilazione sono
uguali! Io uso Linux e se uso awt non mi da problemi. Controlla che non
siano altri i problemi, forse hai sbagliato il path.
Se usi swing (librerie scritte in java) allora la GUI è indipendente
dalla piattaforma.
-- 
Pietro	- 
http://pietro81.altervista.org
Linux Registered User #304991
Powered by *Mandrake GNU/Linux 9.1*

 
...allora...questo immagino in compilazione e con j2sdk 1.4.1...diamo per
assodato che e' bacato...buttalo via e aspetta di trovare in qualche
rivista una versione piu' recente (dalla _01 in poi non ricordo che abbia
piu' dato problemi strani).
Dicevi che con 1.3.1_08 invece riuscivi a compilare e ti dava errori in
esecuzione: quali?
NB: copia e incolla gli errori, per favore...niente copie a mano...


Forse ho risolto qualcosa: ho appena provato con la Slackware 9 sul mio
pc,
stessa release di j2sdk, ha compilato senza errori.Quindi la grafica dà
dei problemi con Red Hat.Le impostazioni sono identiche.
In compenso Red Hat mi consente l'utilizzo dei comandi java da qualunque
directory, mentre Slackware pretende l'indirizzo assoluto, ovvero i miei
files .java sono in /usr/local/tomcat/etc... e se sono con Red Hat 
posso compilarli direttamente da lì digitando javac, mentre con
Slackware
devo mettere /usr/local/java/bin/javac miofile.java.
Le variabili d'ambiente sono impostate esclusivamente sul file
catalina.sh
di Tomcat.Alla fine la mia buona Slackware vince sempre.Peccato perchè
Red Hat 9 mi piace, la trovo molto performante e veloce.
Salutoni a tutti




...secondo me dovresti dedicare un po' piu' di tempo allo studio del
sistema operativo! (strano per uno che usa Slackware)
Mai sentito parlare di impostazione del PATH?


Veramente finora non ne ho avuto la necessità.Inoltre devi sapere che
abbiamo avuto un pessimo docente, che è passato ad argomenti quali 
raid sw, vpn, cluster, ma non ci ha spiegato le cose basilari, come
appunto le variabili d'ambiente, l'installazione di un driver.Quindi
faccio quello che posso...
Comunque ieri le avevo impostate su Red Hat ma non è cambiato nulla.
Mentre sulla Slack funziona lo stesso.
Grazie a tutti per l'aiuto, anche per ulteriori altri suggerimenti.


 Grazie a tutti per l'aiuto, anche per ulteriori altri suggerimenti.
Saluti
Rosario Ianuale
P.s. mi leggerai stavolta? :-(

 P.s. mi leggerai stavolta? :-(
...io ho l'impressione che ci stia prendendo in giro. A meno che non
spunti furi con una domanda sensata, per quel che mi riguarda non spreco
altro tempo con lui. Non sarebbe neanche male se rispondesse ai messaggi
che gli scriviamo, invece di rispondere sempre a quello iniziale...
Rimango comunque stupito che riesca a usare (e a dichiararsi soddisfatto)
di una Slackware e non sappia impostare un path...ma qui ormai sono OT.


Innanzitutto mi scuso se non ho risposto ad alcuni posts, li ho visti
poi
solo ieri sera e la discussione nel frattempo era andata avanti.
Inoltre, adesso sono a scuola, come tutti i giorni, e ci sono delle
limita-
zioni per cui non si può chattare e non sempre posso scaricarmi la
posta.
Ed a scuola non ho il materiale di java con me.
Siccome il corso su Linux è piuttosto lacunoso ed in teoria deve servire
a
creare posti di lavoro, sto cercando di rimediare come posso, studiando
la
 sera per  i fatti miei java, in modo da avere un'ancora di salvezza.Non
ho
mai sostenuto di essere un genio, ho specificato in un altro post di
avere
una preparazione scarsa in Linux.


 di una Slackware e non sappia impostare un path...ma qui ormai sono OT.
Guarda... i suoi messaggi sono di antologia... (almeno i primi due) e non lo
scrivo per farmi gioco di lui... non é educato e sarebbe scorretto nei suoi
confronti. Tutti siamo o siamo stati principianti... ma infilare tutte
quelle sciocchezze una appresso all'altra... non ho resistito... ho dovuto
rispondere. La cosa "bella" é che nessuno gli ha fatto presente che in JAVA
*non* esistono librerie come le intende lui... quelle che si decomprimo in
sorgenti e si linkano... o si mettono nel path dell'applicazione! We... ma
stiamo parlando di Java o di C ?!? :-D
Inoltre tra le righe si legge: io scrivo... ma non so di che sto scrivendo
(ambiente Linux incluso).
In genere é normale, comprensibile e accettabile per un principiante fare
domande da newbie ma lui ha battuto tutti.
Se però si volesse chiarire qui o chat sono a disposizione... altrimenti
questo é il mio ultimo messaggio per questo POST.
Saluti
R. Ianuale
P.s.: Oh... grazie per la risposta :-).

 avere una preparazione scarsa in Linux.
Per conoscere queste cose non bisogna essere genii... basta il buon senso
:-).
Saluti
R.I.
P.s.: ho letto solo ora il tuo post (questo).

Hai capito bene, il docente di Linux parecchie cose le liquidava in 2
parole con la scusa che era roba da programmatori e lui non doveva occu-
parsene.E non ci č stata fornita la documentazione, come pattuito
all'inizio
del corso.Adesso siamo senza docente, quindi mi devo arrangiare.
Preciso anche che visualizzo i posts con ritardo, ecco perchč alle volte
le risposte sono state tardive.Ma non pensavo di meritare la
crocifissione
per aver fatto delle domande, anche se banali.Pensavo che nel mondo
Linux
ci fosse + collaborazione nei confronti di chi č all'inizio.Quando mi č
capitato di insegnare il mio lavoro ai colleghi nuovi ho avuto molta +
pazienza, anche se dovevo fermarmi a fare straordinario ed il mio lavoro
si accumulava.
Se non va bene come ho controllato la versione del sw, perchč
non mi dite come si fa?Perdete sicuramente meno tempo cosě che a sparare
a zero.
Ho digitato java --version, non va bene?So di
avere installato solo la 1.4.1_02, altre non ce ne sono.
Ah dimenticavo: per fare ammenda vi ho scritto in ginocchio sui ceci.


 Ah dimenticavo: per fare ammenda vi ho scritto in ginocchio sui ceci.
We... mica sarai suscettibile? :-)
Saluti
R.I.

Non sono permalosa, mi ha dato fastidio dovermi giustificare, ma stavo
scherzando..
Cmq ti confermo la versione del sw, il comando l'avevo digitato circa 15
interventi fa e mi ha riportato 1.4.1_02, come infatti avevo scritto.
Ad ogni modo intanto sto cercando di capire il funzionamento delle
 variabili d'ambiente e stasera provo anche sulla Red Hat.Purtroppo non
so
come fissarle su un file che se le carichi all'avvio, o perlomeno ci ho
provato ma non funzia. Anche questa era 'programmazione', nessuno ci ha
spiegato qualcosa.
Finchè non trovo il sistema corretto continuerò a caricarle a mano ogni
volta che riavvio il pc.
A questo punto chiuderei il topic per non andare fuori argomento come mi
hai fatto giustamente notare.
Un saluto a tutti ed un grazie per il tempo che m avete dedicato.


 volta che riavvio il pc.
Ehm... non é molto "pulito"... oltre che scomodo...
Ciao
Rosario