我的課GraphicButton.java
創建一個自定義JButton
與一定的文字和字體和矩形邊框。我的問題是,在字符串的最後一個字符和我想要刪除的邊框的末尾之間有一些額外的空間。如何從Java中用Graphics顯示的字符串的末尾刪除空格?
這裏是一個GraphicButton
的實例,看起來像一個字符串「PLAY」和字體FFF Forward(直接下載鏈接)添加到JFrame
。 紅線是我想要刪除的空間。
這裏是我使用(JFrame
創建和設置省略)代碼:
GraphicButton.java
:
public class GraphicButton extends JButton {
private static final long serialVersionUID = 1L;
//Fields
private String text;
private Font font;
//Constructor
public GraphicButton(String text, Font font) {
super(text);
this.text = text;
this.font = font;
//Setting preferred size here.
this.setPreferredSize(new Dimension(this.getFontMetrics(font).stringWidth(text), this.getFontMetrics(font).getAscent()));
}
@Override
public void paintComponent(Graphics g) {
g.setFont(this.font);
//Draw text
g.drawString(this.text, 0, this.getHeight());
//Draw border
g.drawRect(0, 0, this.getWidth(), this.getHeight());
}
}
我在Mac上運行Eclipse的Java 1.8。
該空格是字母之間的空格。我猜你可以在BufferedImage上繪製「PLAY」,找到最右邊的空間,刪除空間,並將修改後的BufferedImage作爲ImageIcon傳遞給JButton。 –
我喜歡你的建議@GilbertLeBlanc,只是我不知道如何去做你的建議。請在答案中添加一些內容,告訴我該怎麼做。 – MasterBlaster
閱讀我的文章[Java Swing Marquee](http://java-articles.info/articles/?p=681),瞭解我如何操作BufferedImage。 –