2016-05-09 2 views
0

Программа компилируется правильно, но панель прокрутки для текстовой области не создается. Я действительно не знаю, почему это происходит. Я определил JScrollPane и даже реализовали его с ScrollPane = новый JScrollPaneКак создать полосу прокрутки для моего JTextArea с помощью JScrollPane?

Это мой код:

import java.awt.*; 
import javax.swing.*; 
import java.awt.event.*; 
import javax.swing.table.*; 
public class GuiProject5 extends JFrame 
{ 
private static final int WIDTH = 400; 
private static final int HEIGHT = 300; 
private JPanel lowerPanel; 
private JLabel widthL, areaL; 
private JTextArea areaTA; 
private JTextArea ta; 
private JScrollPane scrollPane; 
private JTextField lengthTF; 
private JCheckBox gergsC; 
private JButton exitB; 

//Button handlers: 
private ExitButtonHandler ebHandler; 

public GuiProject5() 
{ 

    areaL = new JLabel("Label: ", SwingConstants.RIGHT); 

    lengthTF = new JTextField("TextField"); 

    lowerPanel = new JPanel(); 

    areaTA = new JTextArea("TextArea", 6, 8); 

    ta = new JTextArea("stuff", 6, 8); 

    scrollPane = new JScrollPane(); 

    gergsC = new JCheckBox("Checkbox"); 

    //Specify handlers for each button and add (register)  ActionListeners to each button. 

    exitB = new JButton("Button"); 
    ebHandler = new ExitButtonHandler(); 
    exitB.addActionListener(ebHandler); 

    setTitle("My Gui in java"); 
    Container pane = getContentPane(); 
    pane.setLayout(new GridLayout(4, 2)); 

    //Add things to the pane in the order you want them to appear (left to right, top to bottom) 

    pane.add(exitB); 
    pane.add(lengthTF); 
    pane.add(lowerPanel); 
    ta = new JTextArea("Stuff", 6, 8); 
    ta.setLineWrap(true); 
    ta.setWrapStyleWord(true); 
    lowerPanel.add(new JScrollPane(scrollPane)); 
    pane.add(new JScrolscrollpane); 
    pane.add(gergsC); 
    pane.add(areaL); 



    setSize(WIDTH, HEIGHT); 
    setVisible(true); 
    setDefaultCloseOperation(EXIT_ON_CLOSE); 
} 


public class ExitButtonHandler implements ActionListener 
{ 
    public void actionPerformed(ActionEvent e) 
    { 
     System.exit(0); 
    } 
} 

public static void main(String[] args) 
{ 
    GuiProject5 rectObj = new GuiProject5(); 
} 

}

+1

Вы уверены, что эту программу компилирует ??? 'pane.add (новая JScrolscrollpane); 'В любом случае, вы должны добавить текстовые поля в область прокрутки, прежде чем добавлять панель прокрутки в' pane' – AhmadWabbi

+0

@A. Wabbi Как добавить область текста в панель прокрутки? –

+0

'scrollpane.add (ta);' – AhmadWabbi

ответ

0

вы должны инициализировать JScrollPane как

jsp=new JScrollPane(textAreaObj); 

и добавить его к панель.

JScrollPane 

является классом контейнеров. вы должны определить компонент, по которому вы хотите использовать полосы прокрутки в JScrollPane() constructor , и добавить этот объект jsp в свой макет

+0

Я пробовал то, что вы сказали с помощью jsp = new JScrollPane (textArea Obj), но он все равно не будет работать для меня. частный JTextArea textAreaObj; jsp = new JScrollPane (textAreaObj); pane.add (jsp); pane.add (новый JScrollPane (scrollPane)); –

+0

Почему вы добавили pane.add (новый JScrollPane (scrollPane)); –

Смежные вопросы