2013-01-18 2 views
1

은 자바의 이미지 아이콘에 대해 약간의 질문이 있습니다. 내 스윙 애플리케이션의 드롭 다운 메뉴에서 어떤 이미지 아이콘을 선택할 수 있는지 제한하는 방법이 있습니다.운영 체제에 따라 Swing에서 이미지 아이콘로드하기

나는 멀티 플랫폼 자바 프로그램을 개발 중이며, 사용중인 운영 체제에 따라 드롭 다운 메뉴에서 선택할 수있는 아이콘을 제한하는 방법을 배웁니다.

예 : Windows 기반 PC에서 Linux 아이콘을 선택하면 사용자는 litte 메시지를 받게됩니다.이 메시지는 Linux가 아니라 Windows가 다시 선택한다는 메시지입니다.

내 코드는 지금까지이 아이콘에게 오류를로드하지 않습니다 점에서 작동 등

private String img[] = { 
    "default.png", 
    "window.png", 
    "linix.png", 
    "macos.png", 
    "solaris.png"}; 

private ImgIcon[] icon = { 
    new ImageIcon(getClass().getResource(img[0])), 
    new ImageIcon(getClass().getResource(img[1])), 
    new ImageIcon(getClass().getResource(img[2])), 
    new ImageIcon(getClass().getResource(img[3])), 
    new ImageIcon(getClass().getResource(img[4]))}; 

private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) 
{ 
if (IsWin()) { 
    jTextArea1.setText("Detected OS : " + os); 
    } 
else if (IsMac()) { 
    jTextArea1.setText("Detected OS : " + os); 
    } 
else if (IsLin()) { 
    jTextArea1.setText("Detected OS : " + os); 
    } 
else if(IsSol()) { 
    jTextArea1.setText("\Detected OS : " + os); 
    } 
} 

enter image description here

지금까지 당신이 그것을 표시하는 아이콘을 선택하면 작동하고 약간의 메시지가 너무 좋아 운영 체제가 무엇인지 알려주는 JTextArea에서 다른 운영 체제에있는 경우 사용자에게 잘못된 운영 체제 아이콘을 선택했는지 어떻게 든 경고해야합니다.

의견을 보내 주시면 감사하겠습니다.

+1

OS 감지는 매우 간단합니다 :'System.getProperty ("os.name");'. 자, OS를 미리 알고 있다면 왜 콤보 상자가 필요합니까? –

+0

@GuillaumePolet 이렇게 빠른 답장을 보내 주셔서 감사합니다. System.getProperty ("os.name"); 내 프로그램을 통해 그냥 사용자가 잘못된 이미지를 선택하면 그들은 리눅스 아이콘을 선택하고 Mac이나 Windows 기반의 컴퓨터에있는 경우 제한을 두려고 시도 –

+0

사용자가 틀리게하지 마십시오. 자신이 옳고 자동으로 그에게 맞는 이미지를 선택하게하십시오. –

답변

2
String osName = System.getProperty("os.name"); 
    if (osName.indexOf("Mac OS") > -1) { 
     // Mac OS 
    } else if (osName.indexOf("Windows") > -1) { 
     // Windows 
    } else if (osName.indexOf("Linux") > -1) { 
     // Linux 
    } else if (osName.indexOf("Solaris") > -1) { 
     // Solaris 
    } else { 
     // Something else 
    } 

당신은 그 값 here

의 더 완전한 목록을 얻을 수는 잘못된 값을 선택하도록하지 않으려면 콤보가 불필요하다고 나에게 보인다 그리고 당신은 당신이 어떤 OS 알고 에.