Java Graphics Draw String drawCenteredString(Graphics g, Rectangle rect, String str)

Here you can find the source of drawCenteredString(Graphics g, Rectangle rect, String str)

Description

Draws a string inside a box

License

Apache License

Parameter

Parameter Description
g a parameter
rect a parameter
str a parameter

Declaration

static void drawCenteredString(Graphics g, Rectangle rect, String str) 

Method Source Code

//package com.java2s;
/**//from w w w. j ava2 s .c o  m
 * Copyright (C) David Castells-Rufas, CEPHIS, Universitat Autonoma de Barcelona  
 * david.castells@uab.cat
 * 
 * This work was used in the publication of "Simple real-time QRS detector with the MaMeMi filter"
 * available online on: http://www.sciencedirect.com/science/article/pii/S1746809415001032 
 * 
 * I encourage that you cite it as:
 * [*] Castells-Rufas, David, and Jordi Carrabina. "Simple real-time QRS detector with the MaMeMi filter." 
 *     Biomedical Signal Processing and Control 21 (2015): 137-145.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.geom.Rectangle2D;

public class Main {
    /**
     * Draws a string inside a box
     * @param g
     * @param rect
     * @param str 
     */
    static void drawCenteredString(Graphics g, Rectangle rect, String str) {
        Graphics2D g2d = (Graphics2D) g;
        FontMetrics fm = g2d.getFontMetrics();
        Rectangle2D r = fm.getStringBounds(str, g2d);
        int dx = (int) ((rect.getWidth() - (int) r.getWidth()) / 2);
        int dy = (int) ((rect.getHeight() - (int) r.getHeight()) / 2 + fm.getAscent());
        g.drawString(str, rect.x + dx, rect.y + dy);
    }

    static void drawCenteredString(Graphics g, int x, int y, String str) {
        Graphics2D g2d = (Graphics2D) g;
        FontMetrics fm = g2d.getFontMetrics();
        Rectangle2D r = fm.getStringBounds(str, g2d);
        int nx = (int) (x - (r.getWidth() / 2));
        int ny = (int) (y - (r.getHeight() / 2) + fm.getAscent());
        g.drawString(str, nx, ny);
    }
}

Related

  1. centerString(Graphics g, String s, Font f, int w0, int w, int h)
  2. centerStringX(String s, int w, Graphics2D g2d)
  3. centerStringY(String s, int h, Graphics2D g2d)
  4. drawCentered(Graphics g, String text, Point p)
  5. drawCenteredChar(Graphics g, char[] chars, int x, int y, int w, int h)
  6. drawCenteredString(Graphics g, String str, int x, int y)
  7. drawCenteredString(String s, Graphics g, int x, int y)
  8. drawCenteredText(Graphics2D g, String text, int x, int y, float align_x, float align_y, float font_size)
  9. drawCenteredText(java.awt.Graphics g, String s, java.awt.Rectangle rect)