PDA

Visualizza la versione completa : [JAVA] usare font


maxtn
11-10-2004, 13:37
Ciao, non riesco a capire come impostare i font:


import javax.swing.*;
import java.awt.*;

public class Max
{
public static void main(String argv[])
{
// PULSANTI
JLabel testo = new JLabel("MAX");
JButton PulsOk = new JButton("OK");
JButton PulsAnn = new JButton("Annulla");
PulsOk.setIcon(new ImageIcon("led_v.gif"));
PulsAnn.setIcon(new ImageIcon("led_rl.gif"));
// BARRA SOPRA
JPanel barraSopra = new JPanel();
barraSopra.add(testo);
// BARRA SOTTO
JPanel barraSotto = new JPanel();
barraSotto.setLayout(new FlowLayout(FlowLayout.RIGHT));
barraSotto.add(PulsAnn);
barraSotto.add(PulsOk);
// FINESTRA
JFrame j = new JFrame();
j.setFont(new Font("Arial", Font.BOLD, 30));
j.setTitle("TITOLO PROGRAMMA");
j.setBounds(0, 0, 1024, 720);
j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
j.getContentPane().setLayout(new BorderLayout());
j.getContentPane().add(BorderLayout.NORTH, barraSopra);
j.getContentPane().add(BorderLayout.SOUTH, barraSotto);
j.setVisible(true);
}
}

Compilo e mi da:

/usr/java/jdk1.5.0/bin/javac -source 1.4 -sourcepath /root /root/Max.java
/root/Max.java:24: cannot find symbol
symbol : variable BOLD
location: class Font
j.setFont(new Font("Arial", Font.BOLD, 30));
^
/root/Max.java:24: internal error; cannot instantiate Font. at Font to ()
j.setFont(new Font("Arial", Font.BOLD, 30));
^
/root/Font.java:7: incompatible types
found : java.awt.Font[]
required: Font[]
Font[] fonts = GraphicsEnvironment.getLocalGraphicsEnvironment(). getAllFonts();
^
3 errors
Compilation interrupted

LeleFT
11-10-2004, 19:23
C'č un'ambiguitā fra classi: tu hai una tua classe Font nella cartella root, che č presumibilmente diversa dalla classe Font del package java.awt.
Strano che il messaggio non sia di ambiguitā, piuttosto che di errore, comunque il compilatore sembra beccare la classe Font che hai nella cartella root, che probabilmente non ha un campo statico chiamato Bold.
C'č, poi, un terzo errore, relativo alla classe Font da te definita (di cui non hai dato informazioni), che č dato dal fatto che hai una classe con lo stesso nome di quella del package java.awt. Il metodo getAllFonts() restituisce un array di java.awt.Font che tu tenti di salvare in un array di oggetti Font del tuo package.

Cerca di eliminare l'ambiguitā, magari utilizzando la dichiarazione completa: ogni volta che fai riferimento ad nu oggeto Font della classe java.awt, devi dichiararlo in questo modo:


java.awt.Font mioOggetto = new java.awt.Font(...);


Ciao. :ciauz:

Loading