2012-03-18 95 views
2

因此,自從開發人員預覽版終於推出後,我開始在Linux上開始玩Java FX。我正在關注網站上的第一個示例(Getting Started with JavaFX),並且一切似乎都正常運行。但是,運行該示例時,我所得到的只是一個空白窗口。在Linux上運行Java FX 2.0應用程序時出現空白屏幕

我檢查過以確保我使用JDK7u3中包含的JRE for linux。

奇怪的是我在運行這個例子時沒有遇到任何異常或問題,我只是得到一個什麼都不做的空白窗口。我甚至可以爲舞臺設置一些屬性,例如設置標題或大小,並反映這些更改;但場景中沒有任何內容顯示,甚至沒有背景顏色。

有沒有人有任何想法,我可能做錯了什麼?

更新: 感謝您的回覆;這是代碼和截圖,謝爾蓋。我刪除了大部分的例子,並且只剩下階段創建:

public class UITest extends Application { 

    @Override 
    public void start(Stage mainStage) { 
     try { 
      Group root = new Group(); 
      Scene scene = new Scene(root, 400, 300, Color.RED); 
      mainStage.setScene(scene); 
      mainStage.show(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 

    public static void main(String[] args) { 
     launch(args); 
    } 
} 

這說明THIS窗口。

我使用Ubuntu 11.10並在Eclipse上運行示例。

與-Dprism.verbose = true參數輸出是:

Prism pipeline init order: es2 j2d 
Using t2k for text rasterization 
Using dirty region optimizations 
Prism pipeline name = com.sun.prism.es2.ES2Pipeline 
Loading ES2 native library ... 
    succeeded. 
(X) Got class = class com.sun.prism.es2.ES2Pipeline 
**** GL_ARB_pixel_buffer_object detected **** 
Initialized prism pipeline: com.sun.prism.es2.ES2Pipeline 
RESIZE: 6378396429620 w: 432 h: 1 
Created GL2ES2: [email protected] 
    GL_VENDOR:  NVIDIA Corporation 
    GL_RENDERER: Quadro FX 350M/PCI/SSE2 
    GL_VERSION: 2.1.2 NVIDIA 280.13 
    GL_EXTENSIONS: 
    GL_ARB_color_buffer_float 
    GL_ARB_copy_buffer 
    GL_ARB_depth_clamp 
    GL_ARB_depth_texture 
    GL_ARB_draw_buffers 
    GL_ARB_ES2_compatibility 
    GL_ARB_explicit_attrib_location 
    GL_ARB_fragment_program 
    GL_ARB_fragment_program_shadow 
    GL_ARB_fragment_shader 
    GL_ARB_framebuffer_object 
    GL_ARB_get_program_binary 
    GL_ARB_half_float_pixel 
    GL_ARB_half_float_vertex 
    GL_ARB_imaging 
    GL_ARB_map_buffer_range 
    GL_ARB_multisample 
    GL_ARB_multitexture 
    GL_ARB_occlusion_query 
    GL_ARB_occlusion_query2 
    GL_ARB_pixel_buffer_object 
    GL_ARB_point_parameters 
    GL_ARB_point_sprite 
    GL_ARB_provoking_vertex 
    GL_ARB_robustness 
    GL_ARB_sampler_objects 
    GL_ARB_separate_shader_objects 
    GL_ARB_shader_objects 
    GL_ARB_shading_language_100 
    GL_ARB_shading_language_include 
    GL_ARB_shadow 
    GL_ARB_texture_border_clamp 
    GL_ARB_texture_compression 
    GL_ARB_texture_cube_map 
    GL_ARB_texture_env_add 
    GL_ARB_texture_env_combine 
    GL_ARB_texture_env_crossbar 
    GL_ARB_texture_env_dot3 
    GL_ARB_texture_float 
    GL_ARB_texture_mirrored_repeat 
    GL_ARB_texture_non_power_of_two 
    GL_ARB_texture_rectangle 
    GL_ARB_texture_rg 
    GL_ARB_texture_swizzle 
    GL_ARB_timer_query 
    GL_ARB_transpose_matrix 
    GL_ARB_vertex_array_bgra 
    GL_ARB_vertex_array_object 
    GL_ARB_vertex_buffer_object 
    GL_ARB_vertex_program 
    GL_ARB_vertex_shader 
    GL_ARB_window_pos 
    GL_ATI_draw_buffers 
    GL_ATI_texture_float 
    GL_ATI_texture_mirror_once 
    GL_S3_s3tc 
    GL_EXT_texture_env_add 
    GL_EXT_abgr 
    GL_EXT_bgra 
    GL_EXT_blend_color 
    GL_EXT_blend_equation_separate 
    GL_EXT_blend_func_separate 
    GL_EXT_blend_minmax 
    GL_EXT_blend_subtract 
    GL_EXT_compiled_vertex_array 
    GL_EXT_Cg_shader 
    GL_EXT_depth_bounds_test 
    GL_EXT_direct_state_access 
    GL_EXT_draw_range_elements 
    GL_EXT_fog_coord 
    GL_EXT_framebuffer_blit 
    GL_EXT_framebuffer_multisample 
    GL_EXT_framebuffer_object 
    GL_EXT_gpu_program_parameters 
    GL_EXT_multi_draw_arrays 
    GL_EXT_packed_depth_stencil 
    GL_EXT_packed_pixels 
    GL_EXT_pixel_buffer_object 
    GL_EXT_point_parameters 
    GL_EXT_provoking_vertex 
    GL_EXT_rescale_normal 
    GL_EXT_secondary_color 
    GL_EXT_separate_shader_objects 
    GL_EXT_separate_specular_color 
    GL_EXT_shadow_funcs 
    GL_EXT_stencil_two_side 
    GL_EXT_stencil_wrap 
    GL_EXT_texture3D 
    GL_EXT_texture_compression_dxt1 
    GL_EXT_texture_compression_s3tc 
    GL_EXT_texture_cube_map 
    GL_EXT_texture_edge_clamp 
    GL_EXT_texture_env_combine 
    GL_EXT_texture_env_dot3 
    GL_EXT_texture_filter_anisotropic 
    GL_EXT_texture_format_BGRA8888 
    GL_EXT_texture_lod 
    GL_EXT_texture_lod_bias 
    GL_EXT_texture_mirror_clamp 
    GL_EXT_texture_object 
    GL_EXT_texture_sRGB 
    GL_EXT_texture_swizzle 
    GL_EXT_timer_query 
    GL_EXT_vertex_array 
    GL_EXT_vertex_array_bgra 
    GL_EXT_x11_sync_object 
    GL_EXT_import_sync_object 
    GL_IBM_rasterpos_clip 
    GL_IBM_texture_mirrored_repeat 
    GL_KTX_buffer_region 
    GL_NV_alpha_test 
    GL_NV_blend_minmax 
    GL_NV_blend_square 
    GL_NV_complex_primitives 
    GL_NV_copy_depth_to_color 
    GL_NV_depth_clamp 
    GL_NV_fbo_color_attachments 
    GL_NV_fence 
    GL_NV_float_buffer 
    GL_NV_fog_distance 
    GL_NV_fragdepth 
    GL_NV_fragment_program 
    GL_NV_fragment_program_option 
    GL_NV_fragment_program2 
    GL_NV_framebuffer_multisample_coverage 
    GL_NV_half_float 
    GL_NV_light_max_exponent 
    GL_NV_multisample_filter_hint 
    GL_NV_occlusion_query 
    GL_NV_packed_depth_stencil 
    GL_NV_pixel_data_range 
    GL_NV_point_sprite 
    GL_NV_primitive_restart 
    GL_NV_register_combiners 
    GL_NV_register_combiners2 
    GL_NV_texgen_reflection 
    GL_NV_texture_barrier 
    GL_NV_texture_compression_vtc 
    GL_NV_texture_env_combine4 
    GL_NV_texture_expand_normal 
    GL_NV_texture_lod_clamp 
    GL_NV_texture_rectangle 
    GL_NV_texture_shader 
    GL_NV_texture_shader2 
    GL_NV_texture_shader3 
    GL_NV_vertex_array_range 
    GL_NV_vertex_array_range2 
    GL_NV_vertex_program 
    GL_NV_vertex_program1_1 
    GL_NV_vertex_program2 
    GL_NV_vertex_program2_option 
    GL_NV_vertex_program3 
    GL_NVX_conditional_render 
    GL_OES_depth24 
    GL_OES_depth32 
    GL_OES_depth_texture 
    GL_OES_element_index_uint 
    GL_OES_fbo_render_mipmap 
    GL_OES_get_program_binary 
    GL_OES_mapbuffer 
    GL_OES_packed_depth_stencil 
    GL_OES_rgb8_rgba8 
    GL_OES_standard_derivatives 
    GL_OES_texture_3D 
    GL_OES_texture_float 
    GL_OES_texture_float_linear 
    GL_OES_texture_half_float 
    GL_OES_texture_half_float_linear 
    GL_OES_texture_npot 
    GL_OES_vertex_array_object 
    GL_OES_vertex_half_float 
    GL_SGIS_generate_mipmap 
    GL_SGIS_texture_lod 
    GL_SGIX_depth_texture 
    GL_SGIX_shadow 
    GL_SUN_slice_accum 
RESIZE: 6378695960023 w: 1 h: 1 
RESIZE: 6378733837813 w: 400 h: 300 
+0

這是一個開發人員的預覽,所以不是所有的Linux版本和硬件都支持。什麼是您的操作系統版本?另外,你可以嘗試運行標誌爲'-Dprism.verbose = true'的應用程序並提供輸出嗎? – 2012-03-19 13:21:20

+0

和截圖? – 2012-03-19 14:19:57

+0

誰有這種情況? – corbenik 2012-03-22 15:31:56

回答

0

棱鏡輸出看上去是正確的,與此硬件和管道FX應該在你的linux工作。你可以運行下一個代碼(它向場景添加一個簡單的對象並設置標題)?

public class UITest extends Application { 

    @Override 
    public void start(Stage mainStage) { 
     Group root = new Group(new Button("hello")); 
     Scene scene = new Scene(root, 400, 300, Color.RED); 
     mainStage.setScene(scene); 
     mainStage.setTitle("fx test"); 
     mainStage.show(); 
    } 

    public static void main(String[] args) { launch(); } 
} 
+0

階段的標題確實發生了變化,但窗口內仍沒有組件:S這裏是[WINDOW](https://lh6.googleusercontent.com/-NslLieWa2wA/T20mWJ_B6lI/) AAAAAAAAADM/idjqepIOyNk/S870/javafx_stage_with_button.png)。 – corbenik 2012-03-24 01:53:55

+0

另外需要注意的是,如果我嘗試運行javafx-samples-2.1.0-beta中包含的示例之一,則會出現一個包含以下消息的窗口:**需要JavaFX 2.1.0才能查看此內容,但JavaFX的。從java.com/javafx獲取JavaFX運行時並運行安裝程序。然後重啓應用程序。** 雖然我認爲運行時包含在JDK中,但我認爲這是applet,並且正在嘗試在瀏覽器窗口上運行。 – corbenik 2012-03-24 01:54:39

3

萬一別人有同樣的問題,它竟然是JVM,而不是JafaFX JDK的問題。當使用帶有效果的窗口管理器時,例如使用Compiz時,Linux中會出現問題。看起來這是在JRE1.6之前發生的,本來應該在1.6u3更新後解決,但顯然它會在JRE1.7中再次發生。

該修復程序使用suckless-tools的wmname實用程序設置了另一個窗口管理器名稱。對我來說,它將其設置爲LG3D。

希望這可以幫助別人。 關心!

相關問題