Проблема с JScrollPane в JTextArea в JPanel в JFrame - PullRequest
0 голосов
/ 16 февраля 2012

У меня есть JTextArea в JPanel, с которым я хотел бы использовать JScrollPane.Я использую GridBagLayout.Когда я запускаю его, кажется, что рамка освобождает место для JScrollPane, но она не отображается, любая помощь будет принята с благодарностью.Я пытался изучить страницу docs.oracle и здесь Добавить JScrollPane к JPanel , но по какой-то причине он отказывается отображаться.

Ответы [ 2 ]

1 голос
/ 16 февраля 2012

ваш переменный контейнер - JPanel? Я думаю, что вы забыли вызвать метод add (). Но ниже мой код предложения.

import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.ScrollPaneConstants;
import javax.swing.SwingUtilities;

public class MyScrollPane extends JPanel
{

    public MyScrollPane()
    {   
        GridBagConstraints k = new GridBagConstraints();
        k.gridx = 4;
        k.gridy = 5;



        final JTextArea test= new JTextArea(5, 30);
        test.setLineWrap(true);
        test.setWrapStyleWord(true);
        test.setEditable(false);

        JScrollPane spane = new JScrollPane(test);
        spane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);

        GridBagLayout gbl = new GridBagLayout();
        gbl.setConstraints(spane,k);

        JPanel panel = new JPanel(gbl);     
        panel.add(spane);
        add(panel);

    }


    private static void createAndShowGUI()
    {


        JFrame frame = new JFrame();
        frame.setSize(800, 250);
        frame.setTitle("test1");
        frame.setLocation(300, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setResizable(false);
        frame.getContentPane().add(new MyScrollPane());



        frame.setVisible(true);
    }

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

            @Override
            public void run()
            {
                createAndShowGUI();             
            }
        });
    }

}
0 голосов
/ 16 февраля 2012

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

public class MainFrame extends JFrame {



private JTextArea test = new JTextArea(5, 30);
private JScrollPane spane;

public MainFrame() {

    this.setSize(800, 250);
    this.setTitle("test1");
    this.setLocation(300, 300);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setResizable(false);

    test.setLineWrap(true);
    test.setWrapStyleWord(true);
    test.setEditable(false);
    spane = new JScrollPane(test);
    spane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);

    this.getContentPane().add(spane);

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...