如何在Java中创建圆形JButton?

4
我想在Java中创建圆形的JButton...为此,我使用了圆形图像并将其放置在按钮上,但我没有获得圆形的按钮。

请问有人可以告诉我如何在Java中创建像下面的圆形按钮吗? enter image description here

提前致谢......


2
https://dev59.com/S3RC5IYBdhLWcg3wD8xV - Michael K
@mani,我不确定你是否仍然感兴趣,但我已经更新了我的答案。 - mre
3个回答

6
如果您只是想使用一个圆形按钮的图像,那么为什么不直接使用 JLabel 呢?也就是说,只需调用 setIcon(...) 方法,并将您的 BufferedImage 实例作为参数传递即可。
public final class RoundedButtonDemo {
    private static BufferedImage bi;

    public static void main(String[] args){
        try {
            loadImage();

            SwingUtilities.invokeLater(new Runnable(){
                @Override
                public void run() {
                    createAndShowGUI();             
                }
            });
        } catch (IOException e) {
            // handle exception
        }
    }

    private static void loadImage() throws IOException{
        bi = ImageIO.read(RoundedButtonDemo.class.getResource("../resources/login.png"));
    }

    private static void createAndShowGUI(){
        final JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        final JLabel label = new JLabel();
        label.setIcon(new ImageIcon(bi));

        frame.getContentPane().add(label);
        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }
}

输出

图像描述在此输入

请注意,您需要通过编程使图像的背景透明,或者使用像Paint.NET这样的图像编辑工具。


2
你需要编写一个“外观和感觉”(Java Swing主题)。这不是一件容易的事情,但是可以做到。我建议先看看现有的主题。 LIQUIDLNF 应该是一个很好的起点。

3
Java Swing主题其实被称为“外观和感觉(Look and Feel)”。 - Alpine

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接