2013-03-01 36 views
1

我正在使用netbeans創建項目應用程序,我試圖讓自定義圖像文件充當按鈕,我聽到某處將它設置爲標籤相反,但我很新,所以我需要深入解答如何做到這一點。該網站不會讓我發佈按鈕的圖像,因爲我只是新的,但按鈕是三角形的形狀。我如何使用圖像作爲Java Swing中的按鈕

+0

開始通過閱讀JButton的API,你會發現一個鏈接'如何使用按鈕...'其中包含一個工作示例。 – camickr 2013-03-01 16:18:09

回答

4

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

例如

enter image description hereenter image description here

從代碼

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(); 
      } 
     }); 
    } 
} 
+3

另請參閱[此示例](http://stackoverflow.com/a/10862262/418556)混合按鈕和標籤。 – 2013-03-01 14:27:31

+2

另請參閱[this](http://stackoverflow.com/questions/13825123/event-detection-on-opaque-pixels-in-jbutton/13825593#13825593)使用透明圖像創建按鈕並僅允許點擊非透明像素。 – 2013-03-01 14:57:19