-2
무효 페인트를 가져 왔습니다. 그래픽을 임포트했습니다. 가져 왔습니다.드롭 다운 메뉴를 만들고 싶습니다
무효 페인트를 가져 왔습니다. 그래픽을 임포트했습니다. 가져 왔습니다.드롭 다운 메뉴를 만들고 싶습니다
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;
}
}
감사합니다.이게 정말 도움이되었습니다. – user3725193
@ user3725193, Im glad :). 필요에 따라 적절하다고 판단되면 답변을 올바르게 설정하십시오. –
여기에 귀하의 질문은 무엇입니까? –
레이아웃에'paint (Graphics g)'메소드를 오버라이드 한'Panel' 또는'JPanel'을 추가하십시오. (이 자습서는 http://zetcode.com/tutorials/javaswingtutorial/painting/을 참조하십시오.) – kajacx