Lớp học của tôi GraphicButton.java
tạo một tùy chỉnh JButton
với văn bản và phông chữ nhất định và đường viền hình chữ nhật. Vấn đề của tôi là có thêm khoảng trống giữa ký tự cuối cùng trong chuỗi và phần cuối của đường viền mà tôi muốn loại bỏ.Làm thế nào để loại bỏ không gian từ cuối của một chuỗi hiển thị với đồ họa trong Java?
Đây là những gì một thể hiện của một GraphicButton
trông giống như với chuỗi "PLAY" và font FFF Forward (Direct Download Link) thêm vào một JFrame
. Đường màu đỏ là khoảng trắng tôi muốn xóa.
Đây là mã Tôi đang sử dụng (JFrame
sáng tạo và thiết lập bỏ qua):
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());
}
}
Tôi đang chạy Eclipse trên máy Mac với Java 1.8.
Không gian đó là khoảng cách giữa các chữ cái. Tôi đoán bạn có thể vẽ "PLAY" trên BufferedImage, tìm không gian ngoài cùng bên phải, xóa không gian và chuyển BufferedImage đã sửa đổi thành ImageIcon thành JButton. –
Tôi thích đề xuất của bạn @GilbertLeBlanc, nó chỉ là tôi không biết làm thế nào để làm những gì bạn đang đề xuất. Vui lòng thêm điều gì đó vào câu trả lời của bạn để cho tôi biết phải làm gì. – MasterBlaster
Đọc bài viết của tôi, [Java Swing Marquee] (http://java-articles.info/articles/?p=681), để xem cách tôi thao tác một BufferedImage. –