Прокрутка панели - Java

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

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

Подскажите, пожалуйста, как исправить код. Нужно, чтобы форма содержала панель (на скрине синяя рамка). А эта панель, в свою очередь, содержала панель (красная рамка), которая будет прокручиваться в ней. Но при этом синяя рамка должна быть меньше размера формы. Пока выходит только так, как на скрине
Листинг программы
  1. import java.awt.*;
  2. import javax.swing.*;
  3. public class MyClass extends JFrame {
  4. public MyClass() throws HeadlessException {
  5. JPanel panel1 = new JPanel();
  6. panel1.setBorder(BorderFactory.createLineBorder(Color.blue));
  7. JPanel panel = new JPanel();
  8. panel1.setBorder(BorderFactory.createLineBorder(Color.blue));
  9.  
  10. panel.setBorder(BorderFactory.createLineBorder(Color.red));
  11. panel.setPreferredSize(new Dimension(800, 800));
  12. panel.setBackground(Color.WHITE);
  13. JScrollPane scroll = new JScrollPane(panel);
  14. setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  15.  
  16. panel1.add(scroll);
  17. add(panel1);
  18. panel1.setSize(300,300);
  19. panel1.setVisible(true);
  20. setSize(500, 500);
  21. setVisible(true);
  22. }
  23. public static void main(final String[] args) throws Exception {
  24. java.awt.EventQueue.invokeLater(new Runnable() {
  25. @Override public void run()
  26. { new MyClass().setVisible(true);
  27. } });
  28. }}

Решение задачи: «Прокрутка панели»

textual
Листинг программы
  1. import java.awt.*;
  2. import javax.swing.*;
  3. public class MyClass extends JFrame {
  4.    
  5.     public MyClass() throws HeadlessException {
  6.       JPanel panel1 = new JPanel();
  7.       panel1.setBorder(BorderFactory.createLineBorder(Color.blue));
  8.       panel1.setSize(300,300);
  9.      
  10.       JPanel panel = new JPanel();  
  11.       panel.setBorder(BorderFactory.createLineBorder(Color.red));
  12.       panel.setPreferredSize(new Dimension(800, 800));
  13.       panel.setBackground(Color.WHITE);
  14.            
  15.       JScrollPane scroll = new JScrollPane();
  16.       scroll.setViewportView(panel);
  17.      
  18.       panel1.setLayout(new BorderLayout());
  19.       panel1.add(scroll);  
  20.      
  21.       setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  22.       setLayout(null);
  23.      
  24.          
  25.        add(panel1);
  26.        setSize(500, 500);
  27.        setVisible(true);
  28.     }
  29.    
  30.     public static void main(final String[] args) throws Exception {
  31.        java.awt.EventQueue.invokeLater(new Runnable() {
  32.             @Override public void run()
  33.             { new MyClass().setVisible(true);
  34.             } });
  35.        
  36.     }}

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


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

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

7   голосов , оценка 3.857 из 5

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

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

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