Java FontMetrics adjustFontSizeToGetPreferredWidthOfLabel(JLabel jLabel, int initialWidth)

Here you can find the source of adjustFontSizeToGetPreferredWidthOfLabel(JLabel jLabel, int initialWidth)

Description

adjust Font Size To Get Preferred Width Of Label

License

Open Source License

Declaration

static int adjustFontSizeToGetPreferredWidthOfLabel(JLabel jLabel,
            int initialWidth) 

Method Source Code

//package com.java2s;

public class Main {
    static int adjustFontSizeToGetPreferredWidthOfLabel(JLabel jLabel,
            int initialWidth) {
        int width = initialWidth;
        //      if (metrics.stringWidth(jLabel.getText()) > width) {
        //      jLabel.setFont(new java.awt.Font(jLabel.getFont().getFontName(), 0, jLabel.getFont().getSize()-1));
        //      metrics = jLabel.getFontMetrics(jLabel.getFont());
        //      if (metrics.stringWidth(jLabel.getText()) > width) {
        //         jLabel.setFont(new java.awt.Font(jLabel.getFont().getFontName(), 0, jLabel.getFont().getSize()-1));
        //         metrics = jLabel.getFontMetrics(jLabel.getFont());
        //         if (metrics.stringWidth(jLabel.getText()) > width) {
        //            jLabel.setFont(new java.awt.Font(jLabel.getFont().getFontName(), 0, jLabel.getFont().getSize()-1));
        //            metrics = jLabel.getFontMetrics(jLabel.getFont());
        //            if (metrics.stringWidth(jLabel.getText()) > width) {
        //               jLabel.setFont(new java.awt.Font(jLabel.getFont().getFontName(), 0, jLabel.getFont().getSize()-1));
        //               metrics = jLabel.getFontMetrics(jLabel.getFont());
        //               if (metrics.stringWidth(jLabel.getText()) > width) {
        //                  jLabel.setFont(new java.awt.Font(jLabel.getFont().getFontName(), 0, jLabel.getFont().getSize()-1));
        //                  metrics = jLabel.getFontMetrics(jLabel.getFont());
        //               }
        //            }
        //         }
        //      }
        //   }/*from   w  ww. j av  a 2 s . co  m*/
        int initialFontSize = jLabel.getFont().getSize();
        FontMetrics metrics = jLabel.getFontMetrics(jLabel.getFont());
        if (metrics.stringWidth(jLabel.getText()) > width) {
            for (int i = initialFontSize; i > 10; i--) {
                jLabel.setFont(new java.awt.Font(jLabel.getFont()
                        .getFontName(), 0, jLabel.getFont().getSize() - 1));
                metrics = jLabel.getFontMetrics(jLabel.getFont());
                if (metrics.stringWidth(jLabel.getText()) <= width) {
                    break;
                }
            }
        }
        return metrics.stringWidth(jLabel.getText());
    }
}

Related

  1. abbreviate(String str, FontMetrics fm, int width)
  2. abbreviateName(String str, FontMetrics fm, int width)
  3. alignRight(FontMetrics fm, String string, int align)
  4. clipString(FontMetrics fm, String text, int availableWidth)
  5. clipString(FontMetrics metrics, int availableWidth, String fullText)
  6. clipString(Graphics g, String t, int width)