Не получаеться обуздать JScrollPane - Java

Узнай цену своей работы

Формулировка задачи:

Создаю Frame, в нём JPanel (FlowLayout) а там 50 buttons, всё красиво, но как только добавляю JScrollPane а на неё JPanel с кнопками, то все выстраивается в одну линию, перепробовал JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED по всякому, не получается. Help me!!
Листинг программы
  1. import javax.swing.JFrame;
  2. import javax.swing.JPanel;
  3. import javax.swing.border.EmptyBorder;
  4. import javax.swing.JScrollPane;
  5. import javax.swing.JButton;
  6. import java.awt.Dimension;
  7. import java.awt.FlowLayout;
  8. import javax.swing.ScrollPaneConstants;
  9. import javax.swing.JDesktopPane;
  10. import javax.swing.border.BevelBorder;
  11. import javax.swing.JMenuBar;
  12. import java.awt.CardLayout;
  13. public class Frame2 extends JFrame {
  14. private JPanel contentPane;
  15. /**
  16. * Launch the application.
  17. */
  18. public static void main(String[] args) {
  19. EventQueue.invokeLater(new Runnable() {
  20. public void run() {
  21. try {
  22. Frame2 frame = new Frame2();
  23. frame.setMinimumSize(new Dimension(350, 700));
  24. frame.setVisible(true);
  25. } catch (Exception e) {
  26. e.printStackTrace();
  27. }
  28. }
  29. });
  30. }
  31. /**
  32. * Create the frame.
  33. */
  34. public Frame2() {
  35. setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  36. setBounds(100, 100, 450, 300);
  37. contentPane = new JPanel();
  38. contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
  39. setContentPane(contentPane);
  40. contentPane.setLayout(new BorderLayout(0, 0));
  41.  
  42. JPanel panel = new JPanel();
  43. panel.setBorder(new BevelBorder(BevelBorder.RAISED, null, null, null, null));
  44. FlowLayout flowLayout = (FlowLayout) panel.getLayout();
  45. flowLayout.setAlignOnBaseline(true);
  46. //contentPane.add(panel, BorderLayout.CENTER);
  47. JButton button = new JButton("New button");
  48. button.setPreferredSize(new Dimension(230, 100));
  49. panel.add(button);
  50. JButton button_1 = new JButton("New button");
  51. button_1.setPreferredSize(new Dimension(230, 100));
  52. panel.add(button_1);
  53. JButton button_2 = new JButton("New button");
  54. button_2.setPreferredSize(new Dimension(230, 100));
  55. panel.add(button_2);
  56. JButton button_3 = new JButton("New button");
  57. button_3.setPreferredSize(new Dimension(230, 100));
  58. panel.add(button_3);
  59. JButton button_4 = new JButton("New button");
  60. button_4.setPreferredSize(new Dimension(230, 100));
  61. panel.add(button_4);
  62. JButton button_5 = new JButton("New button");
  63. button_5.setPreferredSize(new Dimension(230, 100));
  64. panel.add(button_5);
  65. JButton button_6 = new JButton("New button");
  66. button_6.setPreferredSize(new Dimension(230, 100));
  67. panel.add(button_6);
  68. JButton button_7 = new JButton("New button");
  69. button_7.setPreferredSize(new Dimension(230, 100));
  70. panel.add(button_7);
  71. JButton button_8 = new JButton("New button");
  72. button_8.setPreferredSize(new Dimension(230, 100));
  73. panel.add(button_8);
  74. JButton button_9 = new JButton("New button");
  75. button_9.setPreferredSize(new Dimension(230, 100));
  76. panel.add(button_9);
  77. JButton button_10 = new JButton("New button");
  78. button_10.setPreferredSize(new Dimension(230, 100));
  79. panel.add(button_10);
  80. JButton button_11 = new JButton("New button");
  81. button_11.setPreferredSize(new Dimension(230, 100));
  82. panel.add(button_11);
  83. JButton button_12 = new JButton("New button");
  84. button_12.setPreferredSize(new Dimension(230, 100));
  85. panel.add(button_12);
  86. JButton button_13 = new JButton("New button");
  87. button_13.setPreferredSize(new Dimension(230, 100));
  88. panel.add(button_13);
  89. JButton button_14 = new JButton("New button");
  90. button_14.setPreferredSize(new Dimension(230, 100));
  91. panel.add(button_14);
  92. JButton button_15 = new JButton("New button");
  93. button_15.setPreferredSize(new Dimension(230, 100));
  94. panel.add(button_15);
  95. JButton button_16 = new JButton("New button");
  96. button_16.setPreferredSize(new Dimension(230, 100));
  97. panel.add(button_16);
  98. JButton button_17 = new JButton("New button");
  99. button_17.setPreferredSize(new Dimension(230, 100));
  100. panel.add(button_17);
  101. JButton button_18 = new JButton("New button");
  102. button_18.setPreferredSize(new Dimension(230, 100));
  103. panel.add(button_18);
  104. JButton button_19 = new JButton("New button");
  105. button_19.setPreferredSize(new Dimension(230, 100));
  106. panel.add(button_19);
  107. JButton button_20 = new JButton("New button");
  108. button_20.setPreferredSize(new Dimension(230, 100));
  109. panel.add(button_20);
  110. JButton button_21 = new JButton("New button");
  111. button_21.setPreferredSize(new Dimension(230, 100));
  112. panel.add(button_21);
  113. JButton button_22 = new JButton("New button");
  114. button_22.setPreferredSize(new Dimension(230, 100));
  115. panel.add(button_22);
  116. JButton button_23 = new JButton("New button");
  117. button_23.setPreferredSize(new Dimension(230, 100));
  118. panel.add(button_23);
  119. JButton button_24 = new JButton("New button");
  120. button_24.setPreferredSize(new Dimension(230, 100));
  121. panel.add(button_24);
  122. JButton button_25 = new JButton("New button");
  123. button_25.setPreferredSize(new Dimension(230, 100));
  124. panel.add(button_25);
  125. JButton button_26 = new JButton("New button");
  126. button_26.setPreferredSize(new Dimension(230, 100));
  127. panel.add(button_26);
  128. JButton button_27 = new JButton("New button");
  129. button_27.setPreferredSize(new Dimension(230, 100));
  130. panel.add(button_27);
  131. JButton button_28 = new JButton("New button");
  132. button_28.setPreferredSize(new Dimension(230, 100));
  133. panel.add(button_28);
  134. JButton button_29 = new JButton("New button");
  135. button_29.setPreferredSize(new Dimension(230, 100));
  136. panel.add(button_29);
  137. JButton button_30 = new JButton("New button");
  138. button_30.setPreferredSize(new Dimension(230, 100));
  139. panel.add(button_30);
  140. JButton button_31 = new JButton("New button");
  141. button_31.setPreferredSize(new Dimension(230, 100));
  142. panel.add(button_31);
  143. JButton button_32 = new JButton("New button");
  144. button_32.setPreferredSize(new Dimension(230, 100));
  145. panel.add(button_32);
  146. JButton button_33 = new JButton("New button");
  147. button_33.setPreferredSize(new Dimension(230, 100));
  148. panel.add(button_33);
  149. JButton button_34 = new JButton("New button");
  150. button_34.setPreferredSize(new Dimension(230, 100));
  151. panel.add(button_34);
  152. JButton button_35 = new JButton("New button");
  153. button_35.setPreferredSize(new Dimension(230, 100));
  154. panel.add(button_35);
  155. JButton button_36 = new JButton("New button");
  156. button_36.setPreferredSize(new Dimension(230, 100));
  157. panel.add(button_36);
  158. JButton button_37 = new JButton("New button");
  159. button_37.setPreferredSize(new Dimension(230, 100));
  160. panel.add(button_37);
  161. JButton button_38 = new JButton("New button");
  162. button_38.setPreferredSize(new Dimension(230, 100));
  163. panel.add(button_38);
  164. JButton button_39 = new JButton("New button");
  165. button_39.setPreferredSize(new Dimension(230, 100));
  166. panel.add(button_39);
  167. JButton button_40 = new JButton("New button");
  168. button_40.setPreferredSize(new Dimension(230, 100));
  169. panel.add(button_40);
  170. JPanel panel_1 = new JPanel();
  171. contentPane.add(panel_1, BorderLayout.NORTH);
  172. JMenuBar menuBar = new JMenuBar();
  173. panel_1.add(menuBar);
  174. //JPanel panel_2 = new JPanel();
  175. //panel_2.setLayout(new CardLayout(0, 0));
  176. JScrollPane scrollPane = new JScrollPane(panel);
  177. scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
  178. scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
  179. contentPane.add(scrollPane, BorderLayout.CENTER);
  180. //panel_2.add(scrollPane, "name_6038829586666");
  181.  
  182. }
  183. }

Решение задачи: «Не получаеться обуздать JScrollPane»

textual
Листинг программы
  1. panel.setPreferredSize(new Dimension(320, 1000));

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.875 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут