2015-10-26 71 views
0

我開發了一個Swing Java應用程序,其中只有一個JFrame,其中有JPanel爲什麼JFrame只能在Eclipse中顯示?

當我在Eclipse中運行它時,它顯示正確,但是當我嘗試導出爲Runnable Jar或導出到NetBeans時,它不顯示內部JPanel,只是空的JFrame

運行在Eclipse

enter image description here

在JVM或NetBeans的運行:

enter image description here

代碼

public LoadJPanel(){ 
    Font_PalMap_rest = getCustomFont(ID_CODE_FONT_REST); 
    Font_PalMap_title = getCustomFont(ID_CODE_FONT_TITLE); 
    ImagePanel panel = new ImagePanel(new ImageIcon(Background_path).getImage()); 
    btnAddAndroid = getButtonConfig(ID_CODE_BUTTON_ADD_ANDROID_DEVICE); 
    btnSendSMS = getButtonConfig(ID_CODE_BUTTON_SEND_SMS_AUTO); 
    btnOpenFolder = getButtonConfig(ID_CODE_BUTTON_OPEN_FOLDER); 
    JLabel label_lembretePalmas = getLabelConfig(ID_CODE_LABEL_TITLE); 
    JFrame frame = new JFrame("LembretePalmas"); 
    textArea = getTextAreaConfig(ID_CODE_DISPLAYING_PROCESS_AREA); 
    scrollPane = getScrollPaneConfig(ID_CODE_DISPLAYING_PROCESS_AREA,textArea); 
    panel.add(btnAddAndroid); 
    panel.add(btnSendSMS); 
    panel.add(label_lembretePalmas); 
    panel.add(scrollPane); 
    panel.add(btnOpenFolder); 
    panel.setVisible(true); 
    frame.getContentPane().setLayout(new FlowLayout()); 
    frame.getContentPane().add(panel, SwingConstants.CENTER); 
    frame.setLocationRelativeTo(null); 
    frame.setResizable(false); 
    frame.setIconImage(new ImageIcon(Icon_path).getImage()); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.pack(); 
    frame.setVisible(true); 
    setServer(); 
} 
+3

1)爲了更快得到更好的幫助,請發佈[MCVE]或[簡短,獨立,正確的示例](http://www.sscce.org/)。 2)請學習常用的Java命名規則(命名約定 - 例如'EachWordUpperCaseClass','firstWordLowerCaseMethod()','firstWordLowerCaseAttribute',除非它是'UPPER_CASE_CONSTANT')並且一致地使用它。 3)爲什麼這個問題有兩個不同IDE的標籤? 4)'JComponent'典型不需要設置可見。只是頂級容器。 5)不要使用'ImageIcon'來加載圖片IT將無聲無息地失敗。使用'ImageIO'作爲有用的堆棧跟蹤。 –

回答

-1

我解決了這個問題。

它在我將圖像的文件夾複製到JAR所在的路徑中時起作用。我在圖像路徑的開頭添加了System.getProperty("user.dir"));

+1

應用程序資源在部署時應該成爲嵌入式資源,所以現在開始訪問它們是明智的做法。 [tag:embedded-resource]必須通過URL而不是文件訪問。請參閱[信息。頁面爲嵌入式資源](http://stackoverflow.com/tags/embedded-resource/info)如何形成的URL。 -1使用'黑客'來解決問題,有更好的解決辦法。 ..剛纔的編輯是一個不可編譯的代碼片段,而不是一個MCVE。請仔細閱讀所提供鏈接的內容。 –