2013-11-09 4 views
0

Я довольно много оглянулся на google и следил за несколькими примерами, но я не могу заставить JScrollPane работать над текстовой областью в JPanel.Не могу заставить мою Jscrollpane работать в моем Jtextarea

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

class main 
{ 
    public static void main(String Args[]) 
    { 
    frame f1 = new frame(); 
    } 
} 

class frame extends JFrame  
{ 

    JButton B = new JButton("B"); 
    JButton button = new JButton("A"); 
    JTextArea E = new JTextArea("some lines", 10, 20); 
    JScrollPane scrollBar = new JScrollPane(E); 
    JPanel grid = new JPanel();   

    frame() 
    { 


    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    setSize(500,800); 
    setTitle("Mobile Phone App"); 
    setLocationRelativeTo(null);   

    E.setLineWrap(true); 
    E.setEditable(false); 

    grid.add(button); 
    button.addActionListener(new action()); 

    grid.add(B); 
    B.addActionListener(new action()); 

    //grid.add(E); 
    grid.getContentPane().add(scrollBar); 
    add(grid);    



    setVisible(true); 
    } 
    class action implements ActionListener 
    { 
     public void actionPerformed(ActionEvent e) 
     { 
      String V = E.getText(); 

      if(e.getSource() == button) 
      { 
       E.setText(V + "A is pressed"); 
      } 
      if(e.getSource() == B) 
      { 
       E.setText(V + "B is pressed"); 
      } 
     } 
    } 

} 

Было бы здорово, если бы кто-нибудь мог увидеть, где я ошибаюсь. Я добавил JscrollPane, в котором я добавил в него текстовую область «e».

ответ

0
E.setColumns(10); 
E.setRows(5); 
E.setPreferredSize(new Dimension(10,5)); // delete this 

Не твердый код предпочтительного размера. Предпочтительный размер переопределяет вашу попытку установить строки/столбцы. Так что избавитесь от этой линии.

Обратите внимание, вы можете также указать строку/столбцы, когда вы создаете текстовую область:

JTextArea textArea = new JTextArea(5, 10); 

обеспечить намек на intial размер текстовой области. Теперь текстовая область может меняться по размеру, поскольку текст добавляется или удаляется, и полоса прокрутки появляется, когда это необходимо.

Также следуйте стандартным соглашениям об именах java. Имена переменных не должны начинаться с символа верхнего регистра.

+0

Хорошо, спасибо за эту информацию. Я следил за тем, что вы сказали, но теперь, когда текст доходит до конца текстового поля ... это делает текстовое поле больше, а не свиток, показывающий – lecardo

+0

@Bobski, и все же ответ не принимается. – camickr

0

Право, я понял!

В основном я должен был добавить его по-другому ... так, как я приближался, это было неправильно!

grid.add(scrollBar, BorderLayout.CENTER); 
Смежные вопросы