如何在java中创建圆形JButton..?

发布于 2024-10-19 09:19:18 字数 188 浏览 11 评论 0原文

我想用 Java 创建圆形 JButton...
为此,我使用圆形图像并将该图像放置在按钮上,但我没有得到圆形按钮。

请任何人都可以告诉如何在 Java 中创建圆形按钮,如下图所示。 在此输入图像描述

提前致谢......

I want to create rounded JButton in Java...
For that I use rounded image and placed that image on button but I didn't get rounded button..

please any one can tell how to create rounded button in Java like show in below figure..
enter image description here

thanks in advance.....

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

骄傲 2024-10-26 09:19:18

如果您只想使用圆形按钮的图像,那么为什么不直接使用 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

If you're just going to use an image of a round button, then why not just use a JLabel? That is, simply invoke setIcon(...), passing your BufferedImage instance as an argument.

CODE

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);
    }
}

OUTPUT

enter image description here

Keep in mind that you'll need to either programmatically make the background of your image transparent, or you'll need to use an image editing tool like Paint.NET.

惜醉颜 2024-10-26 09:19:18

您需要编写一个“外观和感觉”(Java Swing 的主题)。不适合胆小的人,但有可能。我建议看看现有的主题。

LIQUIDLNF 应该是一个好的开始。

You need to write a "Look and Feel" (a theme for Java Swing). Not for the faint of heart but possible. I suggest to look at an existing theme.

LIQUIDLNF should be a good start.

嘦怹 2024-10-26 09:19:18

您可以使用JavaFX定义“丰富的图形组件”示例(带渐变的圆形按钮):http://poligoci.blogspot.com/2009/07/beauty-and-beast-javafx-12-in-netbeans.html

You can use JavaFX to define "Rich Graphic Components" example (rounded button with gradient): http://poligloci.blogspot.com/2009/07/beauty-and-beast-javafx-12-in-netbeans.html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文