对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中收到一条消息告诉你你的操作系统是什么时,它的效果很好...只需要以某种方式提醒用户他们选择了错误的操作系统icon如果他们在另一个操作系统上!
任何建议都将不胜感激!
答案 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
如果您不希望用户选择错误的值并且您知道自己所使用的操作系统,那么我认为您的组合框是不必要的。