2012-10-24 3 views
3

JButton의 기본 테두리는 어떻게 얻을 수 있습니까?JButton의 기본 테두리 가져 오기

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

하지만 그것은 새로운 버튼을 생성하지 않고 수행 할 수 있습니다

예는?

+3

나는 아무도 정말 귀하의 질문을 이해하지 생각합니다. –

+0

제 작품을 대표하는 JButton을 가지고있는 게임을 만들고 있습니다. 하나를 클릭하면 테두리를 LineBorder로 변경하고, 다시 클릭하면 기본 테두리가 필요합니다. getBorder()를 사용하여 문제를 해결했지만 기본값 인 테두리를 입력하는 것이 더 좋을 것입니다. – Zulatin

+0

JButton 대신 JToggleButton을 사용해야하는 것처럼 들립니다. –

답변

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

관련 문제