Добавить прокрутку для JPanel - Java

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

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

Доброго времени суток, еще ни разу не доводилось пользоваться прокруткой и конечно же ничего не получается ( Укажите на ошибки пожалуйсто
package base;
 
import java.awt.Color;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.ScrollPaneConstants;
 
import javax.swing.JScrollPane;

public class CSVmake
{
    public JFrame window = new JFrame();

    public CSVmake()
    {
        makeWindow();
        makeJPanel();
    }

    private void makeWindow()
    {
        window.setSize(800, 600);
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        window.getContentPane().setBackground(Color.white);
        window.setTitle("CSV");
        window.setLayout(null);
        window.setResizable(false);
        window.setLocationRelativeTo(null);//центрирует окно
        window.setVisible(true);
    }

    private void makeJPanel()
    {
        JPanel scrol = new JPanel();
        scrol.setBounds(0,0,900,900);
        scrol.setLayout(null);
        
        for (int i = 0; i < 15; i++)
        {
            JButton menyBt = new JButton();
            menyBt.setBounds(5, 5+i*47, 520, 42);
            menyBt.setName(i+"");
            menyBt.setContentAreaFilled(true);
            menyBt.setBorderPainted(true);
            menyBt.setLayout(null);
            menyBt.setOpaque(false);
            
            scrol.add(menyBt);
        }
        
        JScrollPane spane = new JScrollPane(scrol);
        spane.setBounds(15,15,650,500);
        spane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
        
        window.add(spane);
        window.repaint();
    }

    public static void main(String[] args)
    {
        new CSVmake();
    }
}

Решение задачи: «Добавить прокрутку для JPanel»

textual
Листинг программы
package base;
 
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.ScrollPaneConstants;
import javax.swing.JScrollPane;
 
 
public class CSVmake
{
    public JFrame window = new JFrame();
 
    
    public CSVmake()
    {
        makeWindow();
        makeJPanel();
        makeFonWindow();
    }
    
    
    private void makeWindow()
    {
        window.setSize(800, 600);
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        window.getContentPane().setBackground(Color.black);
        window.setTitle("CSV");
        window.setLayout(null);
        window.setResizable(false);
        window.setLocationRelativeTo(null);
        window.setVisible(true);
    }
    
    
    private void makeFonWindow()
    {
        JLabel fon0 = new JLabel();
        fon0.setBounds(0, 0, 800, 600);
        fon0.setIcon(new ImageIcon(getClass().getResource("/res/fon0.jpg")));
        fon0.setLayout(null);
        window.add(fon0);
        
        window.repaint();
    }
    
    
    private void makeJPanel()
    {
        int b = 15;
        
        JPanel jp = new JPanel();
        jp.setPreferredSize(new Dimension(500,5+47*b));
        jp.setOpaque(false);
        jp.setLayout(null);
        
        //JScrollPane spane = new JScrollPane(scrol);
        JScrollPane spane = new JScrollPane();
        spane.setBounds(15,15,650,500);
        spane.setOpaque(false);
        spane.getViewport().setOpaque(false);
        spane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
        spane.setViewportView(jp);
        
        for (int i = 0; i < b; i++)
        {
            JButton menyBt = new JButton();
            menyBt.setBounds(5, 5+i*47, 520, 42);
            menyBt.setName(i+"");
            menyBt.setText("Helloy");
            menyBt.setForeground(Color.WHITE);
            menyBt.setOpaque(false);
            menyBt.setContentAreaFilled(false);
            menyBt.setBorderPainted(true);
            menyBt.setFocusPainted(false);
            menyBt.setLayout(null);
            
            jp.add(menyBt);
        }
        
        window.add(spane);
        window.repaint();
    }
 
    
    public static void main(String[] args)
    {
        new CSVmake();
    }
}

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


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

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

12   голосов , оценка 4.167 из 5