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...
Afficher la suite