2012-03-18 56 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。

希望这可以帮助别人。 关心!

相关问题