[RESOLVIDO] Como adicionar um scroll em JInternalFrame ?

Eu não estou conseguindo adicionar um scroll pane em jinternalframe, quero adiciona-lo, sem ter que usar um JTextArea.

Você não precisa adicionar um JTextArea pra ter um JScrollPane funcional. Se as barras de rolagem não estão aparecendo é porque o componente dentro do JScrollPane é menor que o espaço disponível no componente pai do JScrollPane (o JInternalFrame).

Tudo o que o JScrollPane precisa é que o componente dentro dele seja maior que o espaço de exibição (Um JFrame, JInternalFrame, JDialog, etc).

Exemplo:

package com.nilson.pathtool;

import java.awt.*;
import javax.swing.*;

@SuppressWarnings("serial")
public class FrameWithScroll extends JFrame {

	public FrameWithScroll(){
		super("JInternalFrame com JScrollPane");
		setLayout(new BorderLayout());
		setExtendedState(JFrame.MAXIMIZED_BOTH);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		createAndShowGUI();

		pack();
	}

	private void createAndShowGUI() {
		JPanel largePanel = new JPanel();
        largePanel.setPreferredSize(new Dimension(1920 * 4, 1080 * 4));
        largePanel.add(new JLabel("Um label simples"));
        JScrollPane scroller = new JScrollPane(largePanel);

        JInternalFrame iframe = new JInternalFrame("Um JInternalFrame", true, true, true, true);
        iframe.getContentPane().add(scroller, BorderLayout.CENTER);
        iframe.setPreferredSize(new Dimension(800, 600));
        iframe.setVisible(true);

        JDesktopPane desktop = new JDesktopPane();

        desktop.add(iframe);

        setContentPane(desktop);

        iframe.pack();
	}

	public static void main(String[] args){
		SwingUtilities.invokeLater( new Runnable(){

			@Override
			public void run() {
				new FrameWithScroll().setVisible(true);
			}
		});
	}
}

Resultado:

Abraço.

1 curtida

Obrigado !