2013-09-23 4 views
1

버튼 배경의 색상을 변경하는 데 문제가 있습니다. GUI를 수행하는 법을 배우기 시작했으며 Windows에서 완벽하게 작동하는 다음 코드를 가지고 있지만 Mac OS를 사용합니다.Mac OS에서 내 버튼의 색상을 변경하는 방법은 무엇입니까?

도와 주시겠습니까?

이미 단추를 추가 한 다음 색상을 변경했지만 실행하면 9 개의 단추가있는 팝업 창이 나타납니다. 그러나 모두 흰색으로 표시되고 배경은 빨간색으로 설정되어 있습니다. 색상 파란색.

 b1.setBackground(Color.BLUE); 
     b2.setBackground(Color.BLUE); 
     b3.setBackground(Color.BLUE); 
     b4.setBackground(Color.BLUE); 
     b5.setBackground(Color.BLUE); 
     b6.setBackground(Color.BLUE); 
     b7.setBackground(Color.BLUE); 
     b8.setBackground(Color.BLUE); 
     b9.setBackground(Color.BLUE); 

     this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     this.setExtendedState(JFrame.MAXIMIZED_BOTH); 
     this.getContentPane().setBackground(Color.RED); 
     this.setBackground(Color.BLACK); 
     this.setVisible(true); 
     this.setBounds(100, 100, 800, 500); 
+0

'this.getContentPane(). setBackground (Color.RED);'행을 주석 처리하십시오. –

답변

1

OSX 및 Windows에서 버튼을 페인트하는 기본 방법은 다른 것처럼 보입니다. 난 그냥 내 Mac에서 테스트

, 어떤 당신이해야 할 것은하는 것입니다 : 당신의 질문이 광범위하기 때문에

, 그래서 여기에 귀하의 문제에 대한 몇 가지 솔루션은, 예상되는 동작이 무엇인지 확실히 모르겠어요 버튼이 불투명되도록 지정 :

b1.setOpaque(true); 

당신이 달성하기 위해 노력하고 당신이 경계를 페인트하지 않도록 지정하거나하는 것은이 필요할 수 있습니다에 따라 :

b1.setBorderPainted(false); 

테두리를 채워서는 안되는 경우 파란색 배경의 정사각형과 가운데에 기본 색이있는 단추가 나타납니다. 하지만,

try { 
     UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); 
} 
catch (Exception e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 

이 마지막 방법은 당신이 OSX/윈도우 모양을 잃게하고 느낄 것이다 : 당신이 두 운영 체제에서 동일하게 보이는 무언가를 원하는 경우에

, 당신은 JFrame의에서 다음 줄을 사용해야합니다 , 버튼은 아마 당신이 기대하는 것과 비슷하게 보일 것입니다.

관련 문제