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 !