我是SWT新手,制作一个GUI,我只想在用户点击“确定”按钮后发出警告信息。喜欢“你的参数错误”,最好带有错误图标,“你的参数是正确的”,最好用检查图标。我做了一点点搜索,它可以用MessageBox()
但它没有检查或勾选图标,我也不想打扰创建自定义图像然后将其应用到对话框。使用MessageBox()
我必须创建一个新的MessageBox对象,设置文本然后打开文本...是不是有一个简单的,一行解决方案,如在Swing?例如StaticClass.showmsg(type,"String");
?如果可能的话我想避免使用JFace,因为那是另一个库,我在JFace上遇到了很多错误,不能那么难......这也是我用MessageBox()
得到的。看起来没有道德。
编辑:我添加了jface和jface也没有一个检查图标(MessageDialog)所以看起来没有其他机会我将不得不自己添加检查图标,但如何? 我当前的警告信息:
MessageDialog.openWarning(Display.getDefault().getActiveShell(), "Warning", "Input parameters are wrong!")
我希望有一个MessageDialog.openOK()
,但是我不知道如何在这些消息中插入自己的图标?
答案 0 :(得分:2)
SWT MessageBox使用OS /窗口系统的本机消息对话框(至少在Windows上)。 SWT中的MessageBox
没有预定义的检查图像。
对于“您的参数还可以”的信息性消息,我们会提供SWT.ICON_INFORMATION
并提供ICON_ERROR
- 错误消息。
如果这不符合您的需求,您可以联系JFace或在纯SWT中编写自己的消息对话框。如果您选择JFace,请使用MessageDialog
作为标准对话框,如错误,信息,警告等,或者如果您需要更多控制对话框内容,请使用IconAndMessageDialog
。
答案 1 :(得分:0)
我不确定你将如何找到控制台窗口的位置(为了将窗格与其对齐而需要)但是如果您担心应用程序的整体外观,那么很可能最好只使用 一个或另一个来保持一致性。
如果您选择使用GUI,则可能会出现以下情况。
如果您收集的数据不简单,您可能需要查看NetBeans Swing GUI Builder (Matisse)。人们对构建者有各种各样的看法,但我觉得NetBeans是一种熟悉Swing的公平方式,你无法超越价格。花一个小时左右的时间,浏览基础教程,您将立即设计简单的(虽然是vanilla)GUI。
如果您收集的数据很简单,可以使用showInputDialog()。这是一个简单,远非完美的下拉示例。如果您提供有关所收集数据的更多信息,我可以提供其他示例。
String response;
String[] possibleValues = { "a Pony", "a Job", "World Peace"};
JOptionPane.showInputDialog(null,
"Choose one", "Select Something",
JOptionPane.INFORMATION_MESSAGE, null,
possibleValues, possibleValues[0]);
response = String.format("You desire %s\n", possibleValues);
JOptionPane.showMessageDialog(null, response);
JOptionPane消息窗口的简单示例,其中包含来自URL的自定义图标:
public void foo() throws MalformedURLException
{
ImageIcon failIcon = new ImageIcon(new URL("https://cdn0.iconfinder" +
".com/data/icons/star-wars/512/darth_vader-32.png"));
ImageIcon okIcon = new ImageIcon(new URL("http://www.fimfiction-static" +
".net/images/avatars/98207_32.jpg?1373627869"));
JOptionPane.showMessageDialog(null, "Parameters are incorrect.", "Derp",
JOptionPane.ERROR_MESSAGE, failIcon);
JOptionPane.showMessageDialog(null, "Parameters are correct.", "Rejoice",
JOptionPane.PLAIN_MESSAGE, okIcon );
祝你好运!