1

关于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);
    }
}

在此处输入图像描述

到目前为止,它工作得很好,当您选择它显示的图标时,您会在 JTextArea 中收到一条小消息,告诉您您的操作系统是什么......只需要以某种方式提醒用户他们选择了错误的操作系统图标,如果他们是在另一个操作系统上!

任何建议,将不胜感激!

4

1 回答 1

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
    }

您可以在此处获得这些值的更完整列表

在我看来,如果您不希望用户选择错误的值并且您知道您在哪个操作系统上,那么您的组合框是不必要的。

于 2013-01-18T10:13:20.373 回答