在Swing中加载图像图标取决于使用中的操作系统

时间:2013-01-18 10:03:44

标签: java swing operating-system imageicon

对java中的图像图标有一个小问题,以及如何对我的swing应用程序中的下拉菜单中可以选择的图像图标进行限制。

我正在开发一个多平台的java程序,并且无法根据使用的操作系统限制你可以从下拉菜单中选择的图标。

例如。如果我在一台基于Windows的PC上选择一个linux图标,用户应该收到一条消息,说明这不是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中收到一条消息告诉你你的操作系统是什么时,它的效果很好...只需要以某种方式提醒用户他们选择了错误的操作系统icon如果他们在另一个操作系统上!

任何建议都将不胜感激!

1 个答案:

答案 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

如果您不希望用户选择错误的值并且您知道自己所使用的操作系统,那么我认为您的组合框是不必要的。