2014-10-17 31 views
1

Im新來的SWT,製作一個圖形用戶界面,我只想在用戶點擊「確定」按鈕後發出提示信息。如「您的參數錯誤」,最好帶有錯誤圖標,最好使用「您的參數正確」,最好使用檢查圖標。我做了一點搜索,它可以與MessageBox()但它沒有檢查或刻度圖標,我也不想打擾創建自定義圖像,然後將其應用到對話框。與MessageBox()我必須創建一個新的MessageBox對象,設置文本,然後打開文本...是不是有一個簡單的,一個線路的解決方案,就像在Swing中一樣?例如StaticClass.showmsg(type,"String");?如果可能的話,我想避免JFace,因爲那是另外一個庫,我和JFace有很多錯誤,不能那麼難......這也是我用MessageBox()得到的。看起來不倫理。帶自定義圖標的簡單SWT警報消息?

Message box example

編輯:我添加的JFace和JFace也可是沒有檢查圖標(MessageDialog),所以看起來沒有其他的機會,我將不得不增加對我自己的,但如何選中圖標? 我現在的警告消息:

MessageDialog.openWarning(Display.getDefault().getActiveShell(), "Warning", "Input parameters are wrong!") 

我希望有一個MessageDialog.openOK(),但心不是讓我怎麼可以將我自己的圖標進入這些消息?

+0

JOptionPane會滿足您的需求嗎? – IdusOrtus 2014-10-17 15:53:30

+0

@IdusOrtus我仍會嘗試繼續使用Jface,但如果它不起作用,那麼我將使用JOptionPane。 JOption窗格錯誤/信息消息直接顯示在屏幕的中心,但應用程序位於左上角,所以它看起來不錯,我能以某種方式使它完全顯示在應用程序上嗎? – Anarkie 2014-10-20 16:40:13

+0

您可以嘗試在調用showMessageDialog()或您決定的任何一個JOptionPane方法時指定應用程序框架作爲第一個參數。 Google joptionpane爲其他選項設置位置。 – IdusOrtus 2014-10-20 17:33:31

回答

1

SWT MessageBox使用OS /窗口系統的本地消息對話框(至少在Windows上)。在SWT中沒有預定義的檢查圖像0​​。

對於像信息消息「你的參數都OK」,SWT.ICON_INFORMATION用於提供和ICON_ERROR - 好 - 錯誤消息。

如果這不符合您的需求,您可以聯繫JFace或在純SWT中編寫自己的消息對話框。如果您選擇使用JFace,請使用MessageDialog進行標準對話框,如錯誤,信息,警告等,如果需要更多控制對話框內容,請使用IconAndMessageDialog

+0

'MessageDialog'可能是更好的選擇。 – 2014-10-17 17:40:26

+0

我添加了缺少的罐子現在它的工作原理,但要求罈子除了罐子本身我不喜歡...無論如何,警告信息與jface工作,但在互聯網上,我發現有限的例子,你知道我可以看看和創造的地方優雅的錯誤/信息/確定(**檢查**)對話框? – Anarkie 2014-10-20 10:57:21

+0

我找不到任何帶有支票的圖標,因此決定只爲「支票」添加我自己的圖標,我該怎麼做?我更新了我的問題。 – Anarkie 2014-10-20 17:01:07

0

我不確定如何找到控制檯窗口的位置(爲了使窗格與它對齊,您需要這樣做),但是如果您擔心應用程序的整體外觀,那麼可能最好使用只有其中一個保持一致性。

如果您選擇GUI,以下內容可能會有用。

如果你正在收集的數據是而不是簡單,你可能想看看NetBeans Swing GUI Builder (Matisse)。人們對建設者有各種各樣的意見,但我覺得NetBeans是一種熟悉Swing的公平方式,你無法打敗價格。花一個小時左右的時間,通過基本教程,您將很快設計簡單(儘管是香草)的GUI。

如果您收集的數據很簡單,您可以使用showInputDialog()。這是一個簡單的,完美的,下拉式的例子。如果您提供有關您收集的數據的更多信息,我可以提供一個不同的示例。

從URL的JOptionPane的消息窗口
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); 

簡單的例子,用自定義圖標:

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); 

祝你好運!

+0

嘿Idus謝謝你的回答,我發現了很多JOptionPane的圖標示例,但正如你所說我決定堅持一個GUI小部件,這將是SWT,因爲警告消息比SWT慢。所以我尋找一種方法來插入我自己的圖標到SWT/JFace爲'MessageDialog.openWarning(Display.getDefault()。getActiveShell(),「Warning」,「輸入參數是錯誤的!」) – Anarkie 2014-10-21 10:26:07