在支持bean操作方法中调用JOptionPane.showMessageDialog时出现java.awt.HeadlessException

时间:2011-12-21 11:20:13

标签: swing jsf javabeans

我正在尝试以下方法:

labelconfig.xhtml

<h:form id="ok">
    <h:commandButton value="click">
        <f:ajax event="click" listener="#{canvasController.oeps}" /> 
    </h:commandButton>
</h:form>

我想在这里得到它:

CanvasController.java

@ManagedBean(name = "canvasController")
@SessionScoped
public class CanvasController

    public void oeps(AjaxBehaviorEvent event) {
        JOptionPane.showMessageDialog(null, "SUCCES3");
    }

}

但是当我点击按钮时,我得到:

  

serverError:class java.awt.HeadlessException

这是如何引起的?如何解决?

1 个答案:

答案 0 :(得分:2)

您正在尝试从服务器应用程序调用Swing而不使用任何桌面GUI。而不是JOptionPane使用logger或FacesContext.addMessage来获取反馈。如果由于某种原因你想通过JSF控制Swing应用程序确保设置了DISPLAY等,那么我建议改述你的问题。