2012-10-24 106 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