2012-10-24 30 views
3

如何獲取JButton的默認邊框?獲取JButton的默認邊框

一個例子是:

Border border = new JButton().getBorder(); 

但我能做到這一點,而無需創建一個新的按鈕?

+3

我想沒有人真正理解你的問題。 –

+0

我正在製作一款遊戲,其中有JButton代表我的作品。當我點擊一個我想要它改變邊界到LineBorder,如果我再次點擊它,我想要默認邊框。 我使用我的getBorder()修復了它,但寧願只輸入默認的邊框 – Zulatin

+0

這聽起來像您需要使用JToggleButton而不是JButton。 –

回答

7

您可以從UIManager檢索默認邊框:

UIManager.getBorder("Button.border"); 

例如:

import java.awt.Color; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import javax.swing.BorderFactory; 
import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.SwingUtilities; 
import javax.swing.UIManager; 

public class TestButton { 
    private static void createAndShowGUI() { 
     JFrame frame = new JFrame("TestButton"); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

     JButton button = new JButton("Click"); 
     button.setBorder(BorderFactory.createLineBorder(Color.BLACK, 2)); 

     button.addActionListener(new ActionListener() { 
      @Override 
      public void actionPerformed(ActionEvent e) { 
       ((JButton)e.getSource()).setBorder(UIManager.getBorder("Button.border")); 
      } 
     }); 

     frame.add(button); 
     frame.pack(); 
     frame.setLocationByPlatform(true); 
     frame.setVisible(true); 
    } 

    public static void main(String[] args) { 
     SwingUtilities.invokeLater(new Runnable() { 
      public void run() { 
       createAndShowGUI(); 
      } 
     }); 
    } 
} 
+1

很好,UIManager工作,正是我想要的:-) – Zulatin