-2
У меня есть класс, который расширяет JPanel
, где я переопределил метод paintComponent(Graphics g)
. Однако я не вижу прямоугольников или полос прокрутки, которые я нарисовал.Как сделать JPanel прокручиваемым в Java?
В основной функции у меня есть следующий код ниже:
MyClass mainPanel = new MyClass();
mainPanel.setPreferredSize(new Dimension(1000, 1000));
mainPanel.setLayout(new BorderLayout());
JPanel scrollPanel = new JPanel();
scrollPanel.setSize(new Dimension(2000, 2000));
JScrollPane scrollPane = new JScrollPane(scrollPanel, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); //Let all scrollPanel has scroll bars
scrollPane.setViewportView(scrollPanel);
scrollPane.setOpaque(true);
scrollPanel.revalidate();
mainPanel.add(scrollPane);
JFrame frame = new JFrame("Scrollable Panel");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(mainPanel);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
Имейте ваш прочитать [официальный путеводитель] (https://docs.oracle.com/javase/tutorial/uiswing/components/scrollpane.html) – AxelH
Try 'scrollPanel.setPreferredSize (новое измерение (2000, 2000)); '. В настоящее время ваш 'scrollPanel' сжимается до нуля, поэтому' scrollPane' не нужно показывать полосы прокрутки. – khelwood
@ Нимрод Аргов, прочитайте его код, у него есть один. – AxelH