Visualizzazione dei risultati da 1 a 2 su 2

Discussione: [JAVA] usare font

  1. #1
    Utente di HTML.it L'avatar di maxtn
    Registrato dal
    Jul 2002
    Messaggi
    712

    [JAVA] usare font

    Ciao, non riesco a capire come impostare i font:

    codice:
    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
    Ubuntu 10.10 x86_64

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    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:
    codice:
    java.awt.Font mioOggetto = new java.awt.Font(...);
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.