Я хочу создать выпадающее меню

помогите мне с пустой краской, я импортировал ее, и я импортировал графику.

1 ответ

public class TextToGraphicConverter {

 public static void main(String[] args) throws Exception {
 BufferedImage image = new TextToGraphicConverter().convertTextToGraphic("my text", new Font("Arial", Font.PLAIN, 18));
 //then do what you want with the image
 }

 public BufferedImage convertTextToGraphic(String text, Font font) {

 BufferedImage img = new BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB);
 Graphics2D g2d = img.createGraphics();

 g2d.setFont(font);
 FontMetrics fm = g2d.getFontMetrics();
 int width = fm.stringWidth(text);
 int height = fm.getHeight();
 g2d.dispose();

 img = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);

 g2d = img.createGraphics();
 g2d.setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION, RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY);
 g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
 g2d.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY);
 g2d.setRenderingHint(RenderingHints.KEY_DITHERING, RenderingHints.VALUE_DITHER_ENABLE);
 g2d.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON);
 g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
 g2d.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
 g2d.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_PURE);
 g2d.setFont(font);
 fm = g2d.getFontMetrics();
 g2d.setColor(Color.BLACK);
 g2d.drawString(text, 0, fm.getAscent());
 g2d.dispose();
 return img;
 }
}

licensed under cc by-sa 3.0 with attribution.