Applet - polices

Applet - polices - Java - Programmation

Marsh Posté le 18-09-2005 à 20:56:29    


Salut,
 
Moi et une amie essayons de reproduire (en créant un applet) une fenêtre de traitement de texte (comme dans Word, Wordperfect, etc.) pour faire la mise en forme des polices. On nous a dit que c'était possible en Java. Nous voulons afficher ceci dans une page web.
 
Nous voulons afficher toutes les polices disponibles sur l'ordinateur (getallfonts()) avec un aperçu de la police (??). Nous voulons avoir un choix de style (gras, italique, etc.), un choix de couleur et un choix de taille.
Notre problème se situe au niveau de la création de l'applet. Nous savons que nous devons utiliser JTextField (pour afficher les polices, etc.), JComboBox (liste déroulante des choix de couleur) JList (?).  
Nous savons que nous devons aussi utiliser FlowLayout ou bien GridLayout.
 
Comment faire les colonnes dans l'applet et séparer les éléments et avoir un aperçu de la police?
 
Je ne sais pas si c'était clair et si vous pouvez nous aider!
 
Merci

Reply

Marsh Posté le 18-09-2005 à 20:56:29   

Reply

Marsh Posté le 19-09-2005 à 10:35:56    

cherche JFontChooser sur google

Code :
  1. /*
  2. * JFontChooser.java
  3. *
  4. * The JFontChooser class is in the Public Domain, the code may be used
  5. * for any purpose.  It is provided as is with no warranty.
  6. *
  7. * Author:   James Bardsley (torasin@torasin.com)
  8. * Last Modfied: 27th January 2005
  9. */
  10. import java.awt.Color;
  11. import java.awt.Component;
  12. import java.awt.Container;
  13. import java.awt.Font;
  14. import java.awt.GraphicsEnvironment;
  15. import java.awt.event.ActionEvent;
  16. import java.awt.event.ActionListener;
  17. import javax.swing.JButton;
  18. import javax.swing.JDialog;
  19. import javax.swing.JLabel;
  20. import javax.swing.JList;
  21. import javax.swing.JPanel;
  22. import javax.swing.JScrollPane;
  23. import javax.swing.JTextField;
  24. import javax.swing.border.TitledBorder;
  25. import javax.swing.event.ListSelectionEvent;
  26. import javax.swing.event.ListSelectionListener;
  27. public class JFontChooser extends JDialog implements ActionListener, ListSelectionListener
  28. {
  29. public static final long serialVersionUID = 62256323L;
  30. private static String[] fonts = GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();
  31. private static String[] style = {"Regular", "Bold", "Italic", "Bold Italic"};
  32. private static String[] size = {"5", "6", "7", "8", "9", "10", "11", "12", "14", "16", "18", "20", "22", "24", "26", "28", "36", "48", "72" };
  33. private Font font;
  34. private int option;
  35. private String textType = "";
  36. private int textStyle = 0;
  37. private int textSize = 0;
  38. private JList fList = new JList(fonts);
  39. private JList stList = new JList(style);
  40. private JList sizeList = new JList(size);
  41. private JTextField jtfFonts = new JTextField();
  42. private JTextField jtfStyle = new JTextField();
  43. private JTextField jtfSize = new JTextField();
  44. private JLabel jlbFonts = new JLabel("fonts" );
  45. private JLabel jlbStyle = new JLabel("style" );
  46. private JLabel jlbSize = new JLabel("size" );
  47. private JScrollPane jspFont = new JScrollPane(fList);
  48. private JScrollPane jspStyle = new JScrollPane(stList);
  49. private JScrollPane jspSize = new JScrollPane(sizeList);
  50. private JButton jbtOK = new JButton("valider" );
  51. private JButton jbtCancel = new JButton("annuler" );
  52. private JTextField jtfTest = new JTextField("test" );
  53. private JButton jbtColor = new JButton();
  54. public static final int OK_OPTION = 1;
  55. public static final int CANCEL_OPTION = 2;
  56. /**
  57.  * Constructs a JFontChooser that uses the default font.
  58.  */
  59. public JFontChooser()
  60. {
  61.  this(new Font("Courier New", Font.PLAIN, 7),Color.BLACK);
  62. }
  63. /**
  64.  * Constructs a JFontChooser using the given font.
  65.  */
  66. public JFontChooser(Font aFont, Color aColor)
  67. {
  68.  Container container = getContentPane();
  69.  JPanel panel = new JPanel();
  70.  TitledBorder panelBorder = new TitledBorder("demo" );
  71.  this.setFont(aFont);
  72.  jbtColor.setBackground(aColor);
  73.  fList.setSelectionMode(0);
  74.  stList.setSelectionMode(0);
  75.  sizeList.setSelectionMode(0);
  76.  jspFont.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
  77.  jspStyle.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
  78.  jspSize.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
  79.  panel.setBorder(panelBorder);
  80.  jtfFonts.setBounds(8, 32, 121, 20);
  81.  jspFont.setBounds(8, 56, 121, 82);
  82.  jtfStyle.setBounds(136, 32, 121, 20);
  83.  jspStyle.setBounds(136, 56, 121, 82);
  84.  jtfSize.setBounds(264, 32, 41, 20);
  85.  jspSize.setBounds(264, 56, 41, 82);
  86.  jbtOK.setBounds(320, 8, 89, 17);
  87.  jbtCancel.setBounds(320, 32, 89, 17);
  88.  jbtColor.setBounds(264,8,41,17);
  89.  panel.setBounds(320, 64, 89, 73);
  90.  container.add(jlbFonts);
  91.  container.add(jtfFonts);
  92.  container.add(jspFont);
  93.  container.add(jlbStyle);
  94.  container.add(jtfStyle);
  95.  container.add(jspStyle);
  96.  container.add(jlbSize);
  97.  container.add(jtfSize);
  98.  container.add(jspSize);
  99.  container.add(jbtOK);
  100.  container.add(jbtCancel);
  101.  container.add(jbtColor);
  102.  container.add(panel);
  103.  jtfTest.setBounds(8, 25, 73, 30);
  104.  panel.add(jtfTest);
  105.  container.setLayout(null);
  106.  panel.setLayout(null);
  107.  setSize(424, 177);
  108.  setResizable(false);
  109.  setModal(true);
  110.  jtfFonts.addActionListener(this);
  111.  jtfSize.addActionListener(this);
  112.  jtfStyle.addActionListener(this);
  113.  jbtCancel.addActionListener(this);
  114.  jbtOK.addActionListener(this);
  115.  jbtColor.addActionListener(this);
  116.  fList.addListSelectionListener(this);
  117.  stList.addListSelectionListener(this);
  118.  sizeList.addListSelectionListener(this);
  119. }
  120. /**
  121.  * Displays the font dialog on the screen positioned relative to
  122.  * the parent and blocks until the dialog is hidden.
  123.  */
  124. public int showDialog(Component parent, String title)
  125. {
  126.  boolean found = false;
  127.  option = CANCEL_OPTION;
  128.  this.setTitle(title);
  129.  jtfTest.setFont(new Font(textType, textStyle, textSize));
  130.  /*
  131.   * Traverse through the lists and find the values that correspond
  132.   * to the selected font.  If it can't find the values then clear the
  133.   * selection.
  134.   */
  135.  for (int i = 0; i < fList.getModel().getSize(); i++)
  136.  {
  137.      fList.setSelectedIndex(i);
  138.     
  139.   if (font.getName().equals((String)fList.getSelectedValue()))
  140.   {
  141.    i = fList.getModel().getSize() + 1;
  142.    found = true;
  143.   }
  144.  }
  145.  if (!found)
  146.  {
  147.   fList.clearSelection();
  148.  }
  149.  stList.setSelectedIndex(font.getStyle());
  150.  found = false;
  151.  for (int i = 0; i < sizeList.getModel().getSize(); i++)
  152.  {
  153.   sizeList.setSelectedIndex(i);
  154.   if (font.getSize() == Integer.parseInt((String)sizeList.getSelectedValue()))
  155.   {
  156.    i = sizeList.getModel().getSize() + 1;
  157.    found = true;
  158.   }
  159.  }
  160.  if (!found)
  161.  {
  162.   sizeList.clearSelection();
  163.  }
  164.  this.setLocationRelativeTo(parent);
  165.  this.setVisible(true);
  166.  return option;
  167. }
  168. /**
  169.  * Sets the current font of the font chooser.
  170.  */
  171. public void setFont(Font aFont)
  172. {
  173.  if(aFont!=null) {
  174.   font   = aFont;
  175.   textType  = aFont.getFontName();
  176.   textStyle  = aFont.getStyle();
  177.   textSize  = aFont.getSize();
  178.  }
  179. }
  180. /**
  181.  * Gets the current font of the font chooser.
  182.  */
  183. public Font getFont()
  184. {
  185.  return font;
  186. }
  187.     public Color getColor() {
  188.         return jbtColor.getBackground();
  189.     }
  190.    
  191.     public void setColor(Color c) {
  192.      if(c!=null) {
  193.       jbtColor.setBackground(c);
  194.      } else {
  195.       jbtColor.setBackground(Color.BLACK);
  196.      }
  197.     }
  198. /**
  199.  * Gets the name of the font chooser's current font.
  200.  */
  201. public String getFontName()
  202. {
  203.  return font.getFontName();
  204. }
  205. /**
  206.  * Gets the style of the font chooser's current font.
  207.  */
  208. public int getFontStyle()
  209. {
  210.  return font.getStyle();
  211. }
  212. /**
  213.  * Gets the size of the font chooser's current font.
  214.  */
  215. public int getFontSize()
  216. {
  217.  return font.getSize();
  218. }
  219. public void actionPerformed(ActionEvent e)
  220. {
  221.  boolean found = false;
  222.  if (e.getSource() == jtfFonts)
  223.  {
  224.   textType = jtfFonts.getText();
  225.   for (int i = 0; i < fList.getModel().getSize(); i++)
  226.   {
  227.    if (((String)fList.getModel().getElementAt(i)).startsWith(jtfFonts.getText().trim()))
  228.    {
  229.     fList.setSelectedIndex(i);
  230.     i = fList.getModel().getSize() + 1;
  231.     found = true;
  232.    }
  233.   }
  234.   if (!found)
  235.   {
  236.    fList.clearSelection();
  237.   }
  238.   else
  239.   {
  240.    jtfTest.setFont(new Font(textType, textStyle, textSize));
  241.   }
  242.   found = false;
  243.  }
  244.  else if (e.getSource() == jtfSize)
  245.  {
  246.   textSize = (Integer.parseInt(jtfSize.getText().trim()));
  247.   jtfTest.setFont(new Font(textType, textStyle, textSize));
  248.   for (int i = 0; i < sizeList.getModel().getSize(); i++)
  249.   {
  250.    if (jtfSize.getText().trim().equals((String)sizeList.getModel().getElementAt(i)))
  251.    {
  252.     sizeList.setSelectedIndex(i);
  253.     i = sizeList.getModel().getSize() + 1;
  254.     found = true;
  255.    }
  256.   }
  257.   if (!found)
  258.   {
  259.    sizeList.clearSelection();
  260.   }
  261.   found = false;
  262.  }
  263.  else if (e.getSource() == jtfStyle)
  264.  {
  265.   if (jtfStyle.getText().equals("Regular" )) //$NON-NLS-1$
  266.   {
  267.    textStyle = 0;
  268.   }
  269.   else if (jtfStyle.getText().equals("Bold" )) //$NON-NLS-1$
  270.   {
  271.    textStyle = 1;
  272.   }
  273.   else if (jtfStyle.getText().equals("Italic" )) //$NON-NLS-1$
  274.   {
  275.    textStyle = 2;
  276.   }
  277.   else if (jtfStyle.getText().equals("Bold Italic" )) //$NON-NLS-1$
  278.   {
  279.    textStyle = 3;
  280.   }
  281.   stList.setSelectedIndex(textStyle);
  282.   jtfTest.setFont(new Font(textType, textStyle, textSize));
  283.  }
  284.  else if (e.getSource() == jbtOK)
  285.  {
  286.   option = OK_OPTION;
  287.   font = new Font(textType, textStyle, textSize);
  288.   this.setVisible(false);
  289.  }
  290.  else if (e.getSource() == jbtCancel)
  291.  {
  292.   option = CANCEL_OPTION;
  293.   this.setVisible(false);
  294.  }
  295.  else if(e.getSource() == jbtColor)
  296.  {
  297.      Color currentColor = jbtColor.getBackground();
  298.      if(currentColor == Color.BLACK) {
  299.          jbtColor.setBackground(Color.BLUE);
  300.      } else if(currentColor == Color.BLUE) {
  301.          jbtColor.setBackground(Color.CYAN);
  302.      } else if(currentColor == Color.CYAN) {
  303.          jbtColor.setBackground(Color.GRAY);
  304.      } else if(currentColor == Color.GRAY) {
  305.          jbtColor.setBackground(Color.GREEN);
  306.      } else if(currentColor == Color.GREEN) {
  307.          jbtColor.setBackground(Color.MAGENTA);
  308.      } else if(currentColor == Color.MAGENTA) {
  309.          jbtColor.setBackground(Color.ORANGE);
  310.      } else if(currentColor == Color.ORANGE) {
  311.          jbtColor.setBackground(Color.PINK);
  312.      } else if(currentColor == Color.PINK) {
  313.          jbtColor.setBackground(Color.RED);
  314.      } else if(currentColor == Color.RED) {
  315.          jbtColor.setBackground(Color.WHITE);
  316.      } else if(currentColor == Color.WHITE) {
  317.          jbtColor.setBackground(Color.BLACK);
  318.      } else {
  319.          jbtColor.setBackground(Color.BLUE);
  320.      }
  321.  }
  322. }
  323. public void valueChanged(ListSelectionEvent e)
  324. {
  325.  if (e.getSource() == fList)
  326.  {
  327.   if (fList.getSelectedValue() != null)
  328.   {
  329.    jtfFonts.setText(((String)(fList.getSelectedValue())));
  330.   }
  331.   textType = jtfFonts.getText();
  332.   jtfTest.setFont(new Font(textType, textStyle, textSize));
  333.  }
  334.  else if (e.getSource() == stList)
  335.  {
  336.   jtfStyle.setText(((String)(stList.getSelectedValue())));
  337.   if (jtfStyle.getText().equals("Regular" )) //$NON-NLS-1$
  338.   {
  339.    textStyle = 0;
  340.   }
  341.   else if (jtfStyle.getText().equals("Bold" )) //$NON-NLS-1$
  342.   {
  343.    textStyle = 1;
  344.   }
  345.   else if (jtfStyle.getText().equals("Italic" )) //$NON-NLS-1$
  346.   {
  347.    textStyle = 2;
  348.   }
  349.   else if (jtfStyle.getText().equals("Bold Italic" )) //$NON-NLS-1$
  350.   {
  351.    textStyle = 3;
  352.   }
  353.   jtfTest.setFont(new Font(textType, textStyle, textSize));
  354.  }
  355.  else if (e.getSource() == sizeList)
  356.  {
  357.   if (sizeList.getSelectedValue() != null)
  358.   {
  359.    jtfSize.setText(((String)(sizeList.getSelectedValue())));
  360.   }
  361.   textSize = (Integer.parseInt(jtfSize.getText().trim()));
  362.   jtfTest.setFont(new Font(textType, textStyle, textSize));
  363.  }
  364. }
  365. }


Message édité par la viper le 19-09-2005 à 10:39:03
Reply

Marsh Posté le 19-09-2005 à 23:33:11    

ha merci
 
je vais vérifier le code!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed