【问题标题】:How can I use an image as a button in Java Swing如何在 Java Swing 中将图像用作按钮
【发布时间】:2013-03-01 14:15:06
【问题描述】:

我正在使用 netbeans 创建一个项目应用程序,我正在尝试获取一个自定义图像文件作为按钮,我听说在某处将其设置为标签,但我对此很陌生,所以我需要关于如何做到这一点的深入回答。该网站不允许我发布按钮的图像,因为我只是新手,但按钮是三角形的。

【问题讨论】:

  • 从阅读 JButton API 开始,您会在 How to Use Buttons... 上找到一个链接,其中包含一个工作示例。

标签: java swing jbutton jlabel imagebutton


【解决方案1】:

使用方法implemented in API and to remove Borders and Background from JButton

例如

来自代码

import java.awt.Insets;
import javax.swing.Icon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;

public class MyToggleButton extends JFrame {

    private static final long serialVersionUID = 1L;
    private Icon errorIcon = UIManager.getIcon("OptionPane.errorIcon");
    private Icon infoIcon = UIManager.getIcon("OptionPane.informationIcon");
    private Icon warnIcon = UIManager.getIcon("OptionPane.warningIcon");

    public MyToggleButton() {
        final JButton toggleButton = new JButton();
        toggleButton.setBorderPainted(false);
        toggleButton.setBorder(null);
        toggleButton.setFocusable(false);
        toggleButton.setMargin(new Insets(0, 0, 0, 0));
        toggleButton.setContentAreaFilled(false);
        toggleButton.setIcon((errorIcon));
        toggleButton.setSelectedIcon(infoIcon);
        toggleButton.setRolloverIcon((infoIcon));
        toggleButton.setPressedIcon(warnIcon);
        toggleButton.setDisabledIcon(warnIcon);
        add(toggleButton);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        pack();
        setVisible(true);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                MyToggleButton t = new MyToggleButton();
            }
        });
    }
}

【讨论】:

  • 另见this example,它混合了按钮和标签。
  • 另请参阅this 示例,了解使用透明图像创建按钮并仅允许点击非透明像素。
猜你喜欢
  • 2020-10-03
  • 1970-01-01
  • 2013-03-28
  • 2011-10-10
  • 2016-10-18
  • 2022-01-18
  • 1970-01-01
  • 1970-01-01
  • 2013-02-01
相关资源
最近更新 更多