fork download
  1. // JSplitPane display bug demo
  2. package demo;
  3.  
  4. class SplitPaneDemo extends javax.swing.JFrame
  5. {
  6. private static final Object[][] DEMO_DATA =
  7. {
  8. new Object[] {"Alfa", 150748},
  9. new Object[] {"Bravo", 265984},
  10. new Object[] {"Charlie", 293853},
  11. new Object[] {"Delta", 548932},
  12. };
  13. private static final Object[] CLM_NAMES =
  14. {
  15. "First",
  16. "Second"
  17. };
  18.  
  19. private javax.swing.JSplitPane splitter;
  20. private javax.swing.JScrollPane leftScroller;
  21. private javax.swing.JScrollPane rightScroller;
  22. private javax.swing.JTable leftTable;
  23. private javax.swing.JTable rightTable;
  24.  
  25. public SplitPaneDemo()
  26. {
  27. splitter = new javax.swing.JSplitPane();
  28. leftScroller = new javax.swing.JScrollPane();
  29. rightScroller = new javax.swing.JScrollPane();
  30. leftTable = new javax.swing.JTable(DEMO_DATA, CLM_NAMES);
  31. rightTable = new javax.swing.JTable(DEMO_DATA, CLM_NAMES);
  32.  
  33. setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
  34. java.awt.Container contentPane = getContentPane();
  35. contentPane.setLayout(
  36. new javax.swing.BoxLayout(contentPane, javax.swing.BoxLayout.PAGE_AXIS)
  37. );
  38.  
  39. leftScroller.setViewportView(leftTable);
  40. rightScroller.setViewportView(rightTable);
  41.  
  42. splitter.setLeftComponent(leftScroller);
  43. splitter.setRightComponent(rightScroller);
  44.  
  45. contentPane.add(splitter);
  46.  
  47. // Setting the preferred size on the window causes the JSplitPane to mess up the table displays
  48. // Remove the setPreferredSize call and the bug disappears
  49. setPreferredSize(new java.awt.Dimension(550, 400));
  50.  
  51. pack();
  52. }
  53.  
  54. public static void main(String[] args)
  55. {
  56. // Maybe it only fails in "Nimbus" style...
  57. try
  58. {
  59. for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels())
  60. {
  61. if ("Nimbus".equals(info.getName()))
  62. {
  63. javax.swing.UIManager.setLookAndFeel(info.getClassName());
  64. break;
  65. }
  66. }
  67. }
  68. catch (Exception exc)
  69. {
  70. System.err.println(exc.toString());
  71. }
  72.  
  73. java.awt.EventQueue.invokeLater(
  74. () ->
  75. {
  76. final SplitPaneDemo window = new SplitPaneDemo();
  77. window.pack();
  78. window.setVisible(true);
  79. }
  80. );
  81. }
  82. }
  83.  
Runtime error #stdin #stdout #stderr 0.08s 34152KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
Error: Could not find or load main class SplitPaneDemo
Caused by: java.lang.NoClassDefFoundError: demo/SplitPaneDemo (wrong name: SplitPaneDemo)