Problème avec java.awt.font.TextAttribute

autreOliv Messages postés 2 Date d'inscription samedi 21 novembre 2020 Statut Membre Dernière intervention 21 novembre 2020 - Modifié le 21 nov. 2020 à 02:56
autreOliv Messages postés 2 Date d'inscription samedi 21 novembre 2020 Statut Membre Dernière intervention 21 novembre 2020 - 21 nov. 2020 à 03:08
Bonjour à toutes et à tous,
Pourquoi dans le tout petit programme suivant :
........1 - Le second texte ne s'affiche-t-il pas en gras et condensé ?
........2 - TextAttribute(posture) = null et TextAttribute(weight) = null pour les deux
Font
alors que le premier texte, lui, s'affiche pourtant bien gras et italique ?
package tests;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GraphicsEnvironment;
import java.awt.GridLayout;
import java.text.AttributedCharacterIterator.Attribute;
import java.util.Map;

import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.SwingUtilities;
import javax.swing.border.Border;

final class FontTest implements Runnable {
    public static void main(String[]arguments) {
        SwingUtilities.invokeLater(new FontTest());
    }
    @Override
    public void run(){
        JFrame frame_ = new JFrame("FontTest");
        JPanel panel_ = new JPanel(new GridLayout(1, 2));
        JTextArea text_1 = new JTextArea(), text_2 = new JTextArea();
        Border border_ = BorderFactory.createLineBorder(Color.BLACK);
        Font[]all_fonts = GraphicsEnvironment.getLocalGraphicsEnvironment()
                                             .getAllFonts();
        // choix de 2 polices avec différentes spécificités prédéfinies
        // Arial Bold Italic et Bahnschrift Bold Condensed
        Font font_1 = all_fonts[6], font_2 = all_fonts[13];
        Map<? extends Attribute, ?> map_1 = font_1.getAttributes()
                                  , map_2 = font_2.getAttributes();
        text_1.setBorder(border_);
        text_1.setFont(new Font(map_1).deriveFont(14.f));
        text_1.append(font_1.getName());
        text_1.append(System.getProperty("line.separator"));
        text_1.append(System.getProperty("line.separator"));
        for(Object o : text_1.getFont().getAttributes().entrySet()) {
            text_1.append(o.toString());
            text_1.append(System.getProperty("line.separator"));
        }
        text_2.setBorder(border_);
        text_2.setFont(new Font(map_2).deriveFont(14.f));
        text_2.append(font_2.getName());
        text_2.append(System.getProperty("line.separator"));
        text_2.append(System.getProperty("line.separator"));
        for(Object o : text_2.getFont().getAttributes().entrySet()) {
            text_2.append(o.toString());
            text_2.append(System.getProperty("line.separator"));
        }
        panel_.setPreferredSize(new Dimension(840, 200));
        panel_.add(text_1);
        panel_.add(text_2);
        frame_.add(panel_);
        frame_.pack();
        frame_.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        frame_.setLocationRelativeTo(null);
        frame_.setVisible(true);
    }
}


S'il vous plait, à l'aiiiiide ! Merci...

1 réponse

autreOliv Messages postés 2 Date d'inscription samedi 21 novembre 2020 Statut Membre Dernière intervention 21 novembre 2020
21 nov. 2020 à 03:08
Voici la sortie :
0